Vimで改行時の自動コメントアウトを無効化

  • 68
    Like
  • 2
    Comment
More than 1 year has passed since last update.

背景

コメントアウトされている行から改行を行うと、挿入モードからでもノーマルモードからでも、新しい行をコメントアウトしてくれる機能がVimにはついています。なんという優しさ。

しかし、個人的には鬱陶しい……よし、消し去ろう!

既存手法

インターネットの海を彷徨った結果、formatoptions-=orをすれば良いということはわかったのですが、どうにもうまくいきません。

当然のごとく、全く同じ悩みを抱えていた方がいました。

vim で改行での自動コメントアウトを無効にする

検索して多く見つかった方法ですけど、最初 ~/.vimrc に以下のように書いたのですが上手く行きません。

set formatoptions-=ro

または、

autocmd FileType * setlocal formatoptions-=ro

どちらも上手くいかないので、さらにググりまくる。どうやら、作業中のカレントディレクトリの .vimrc に上記を書く方法もあるようです。まあカレントディレクトリに書けばできそうですけど、毎回は面倒くさいので他の方法を探すことに。

そう、全然うまくいかないんですよ!プラグインが悪さしてる気はしますが、とにかくうまくいかないんですよ!

~/.vim/after 内に以下のとおりファイルを作成します。

$ mkdir -p ~/.vim/after/ftplugin/
$ vi ~/.vim/after/ftplugin/ruby.vim
" 改行で自動コメントアウトを無効にする
setlocal formatoptions-=r
setlocal formatoptions-=o

ftplugin/ruby.vim の部分は、目的のファイルタイプに応じて修正します。Perl を使う場合だったら、ftplugin/perl.vim とか。

試してみたら見事にできました。

が、しかし!

これだと指定したファイルタイプのものしか設定できません。各ファイルタイプごとにいちいち設定するなんて嫌だ!面倒臭すぎる!

というわけで試行錯誤した結果、なんとかなりました。

提案手法

まず、~/.vim/after内に以下のようにpluginディレクトリとcommon-settings.vimファイルを作成。.vimファイルの名前はなんでも大丈夫ですが、なんのファイルかわかりやすいような名前にしておきました。

$ mkdir ~/.vim/after/plugin
$ touch ~/.vim/after/plugin/common-settings.vim

そして、作ったcommon-settings.vim内に以下を記述。

au FileType * setlocal formatoptions-=ro

これで無事、どのファイルを開いてもformatoptions-=roが設定されるようになりました!

めでたしめでたし。