アルパカ三銃士

〜アルパカに酔いしれる獣たちへ捧げる〜

neovim コメント内で改行した時に自動でコメントされるのを防ぐ

最近 neovim を使い始めていて、vim を使ってる時から気になってた問題に向き合うことにした。この問題がどんな内容かというと

“ vim ファイルでのコメント

といったコメントを記入していてカーソルが行の最後に来た時、エンターキーを入力して改行するはずである。その時に

“ vim ファイルでのコメント
“ 

といった感じで、カーソルの前にコメント文字が勝手に入力されてしまうことである。

この問題を全てのファイルフォーマットに対して解決したかった。ググってみると沢山の情報が出てきた。例えば init.vim

set fo-=c fo-=r fo-=o

を記入すると解決するみたいな内容ばかりで、実際にはどれも解決しなかった。それで Twitter 上でいじけてると、通りすがりの暗黒美無王さんから次のようなヒントをもらった。

.config/nvim/after/ftplugin.vim を作って、このファイルの中に設定を書くと runtime や何かしらの vim plugin で定義されてる設定を上書きすることが可能になるとのこと。

早速上記の設定を書いたが何も変わらなかった。本当にロードされているのかを :verbose set fo? を入力して確認するとファイルのロードはされてるが、設定が反映されてなかった。もっとググってみると、真の解決方法が示された stack exchange のページにたどり着いた。

https://vi.stackexchange.com/a/1985

内容は、上記の方法だけだと機能しないので FileType イベントを使ってファイルがロードされた時にセットするようにしましょうとの事。

au FileType * set fo-=c fo-=r fo-=o

これを記述すると無事にどのファイルでもコメントの問題が発生しなくなった!やったー!!

f:id:codehex:20200417231352j:plain

c, r, o が formatoptions に含まれてないことが分かる。