#問題
コメントを入力しようとしたら、勝手にカーソルが移動してインデントが消えてしまう問題です。
自分の場合はRubyファイルでしたが、
if @row.save
redirect_to title_path(title_id), notice: "ITEM SAVED"
else
redirect_to title_path(title_id), notice: "SAVE FAILED"
end
こういう場合、if文内にそれぞれ# 保存成功
と# 保存失敗
を入れたくても、#を入力した瞬間にカーソルが移動してしまい、
if @row.save
# 保存成功
redirect_to title_path(title_id), notice: "ITEM SAVED"
else
redirect_to title_path(title_id), notice: "SAVE FAILED"
end
とズレてしまいました。
ああああああああああ!!!!!!!!!!!!!!!
原因
Vimの設定でfiletype plugin indent off
になっていたからでした。
#確認方法
Vimファイルを開いて
:filetype
で確認出来ます。
filetype detection:ON plugin:ON indent:ON
↑
この3つすべてがONが良いみたいですね。
自分の場合は、3つ目のindentがOFFになっていました。
#設定方法
読み込んでいる.vimrcで、(最後あたりに書く?)
filetype plugin indent on
これで解決しました。
#雑記
最初はvim74/syntax/ruby.vimのあたりに原因があると思って、コメントを判別する行を消したりしてみました。
ただこのシンタックスは「このファイル形式だったら、こういうコードはこういう意味ですよ」という判別をしてくれてるファイルみたいですね。
問題はそのシンタックスの定義にもちゃんとインデント幅があり、それをちゃんと認識してなかったという事でした。
「vim ruby indent コメント」とかで検索しても、「コメント行の次の行までコメントアウトされてしまう!」問題ばかりがヒットして地味に見つけるのが大変だったのでまとめておきます。
以上です