Vimメモ : コメント化/コメント化解除
Vimでコメント化/コメント化解除する方法はいろいろあるみたいなので調べてみる。
矩形ビジュアルモードを使用
Ctrl-vの矩形ビジュアルモードでテキストを選択後、Iを入力してコメント化文字列の#を入力、その後Escを押せば一瞬遅れて選択した行に編集が反映される。
追加した文字を削除したければ矩形ビジュアルモードで選択してxを押す。
選択範囲に対してノーマルモードのコマンドを実行
下記コマンドを実行するとファイル全体に対して先頭に#が追加される(なお、normalはnormでもよい)。
:%normal i#
%はファイル全体を表すため、例えば3行目から5行目だけに追加したい場合は以下のように実行する。
:3,5normal i#
先頭に追加した文字を削除する場合は下記コマンドを実行する。
:%normal x
選択範囲に対して置換コマンドを使用
置換コマンドを使用して先頭に#を追加/削除する。
コメント化
:%s/^/#/
コメント化解除
:%s/^#//
commentary.vimを使用
マニュアルが簡単そうだったcommentary.vimを使用してみる。
NeoBundleを使用している場合は下記行を追加してインストール。
NeoBundle 'tpope/vim-commentary'
インストール後はノーマルモードでgc{motion}を実行するとコメント化/コメント化解除が切り替えられる。例えば、gcGと入力すれば現在行から最終行までコメント化できる。現在行をコメント化したい場合はgccと入力する。
{Visual}gcという使い方もできるのでビジュアルモードで選択してからgcを入力してもよい。また、コマンドラインモードで:%Commentaryと実行すれば全ての行がコメント化される。
プラグインの良い点は自動でファイルタイプを判別してくれるところで、例えば.rbなら#、.jsなら//のように適切にコメント化してくれる。
対応していないファイルタイプに対してコメント化文字列を指定したい場合は下記のような行を.vimrcに追加する。
" 例えばrubyのコメント化文字列を$に変更(%sは元の文字列) autocmd FileType ruby setlocal commentstring=$\ %s " *.logファイルのコメント化文字列に#を指定 autocmd BufNewFile,BufRead *.log setlocal commentstring=#\ %s

- 作者: Drew Neil,新丈径
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2013/08/29
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (15件) を見る