読者です 読者をやめる 読者になる 読者になる

改行時にコメント継続するのをやめさせたい

vimの編集モードでCtrl+vでスニペットをコピペしようとしたときに、途中にコメント文が含まれると、それ以降のコードがすべてコメント継続してコピペされてしまうのでいらっとしますよね。そんなときに使うのが以下のオプション。

formatoptions: 『r』

r       挿入モードで <Enter> を打ち込んだ後に、現在のコメント開始文字列を自動
        挿入する。

:help fo-table でその他いろいろなオプションが参照できます。

コマンドモードで

:set formatoptions-=r

を実行してみるとコマンド行が継続されなくなっていい感じに。

早速 .vimrc に追加してvimスクリプトを再起動するとなんでかうまく行かない。

ググると こういうの を見つけたので以下のように修正。

autocmd Filetype * set formatoptions-=r

これで大丈夫だと思って再起動してもまただめ。ftplugin を作るのはかったるいので最後の手段で、.vimrc で上記のコマンドを最後に持って来たらうまく行きました。NeoBundle でプラグインの管理をしているのですがその中のどれかが formatoptions の設定を上書きしてた模様。

.vimrc でNeoBundleの設定を .vimrc.neobundle などと別ファイル化してsourceで読み込んでなるべく編集しやすいようにしています。

" ************************************************* 
" NeoBundle 系は別ファイルに集約
" *************************************************
if filereadable(expand('~/.vimrc.neobundle'))
  source ~/.vimrc.neobundle
endif

" *************************************************
" My settings - kiyotune
" *************************************************
set tabstop=2
set shiftwidth=2
set autoindent
set nobackup
set imdisable
autocmd Filetype * set formatoptions-=ro

formatoptions: 『o』

o       ノーマルモードで 'o', 'O' を打ち込んだ後に、現在のコメント開始文字列を
        自動的に挿入する。

MountainLion クリーンインストールしてこの方、環境構築が楽しくて、ろくなソース書いてないよ!