NERD Commenterの説明
この記事は勝手にVim記事を書き続けるの1日目(2010/12/26)です。
adventしたかったけれどもうクリスマス後なので。。
Vimのadventは無いのかとつぶやいたところ
じゃあやれよとつぶやきをいただいたので勝手に始めてみます。
ということですがたいした使い方はしていないので
プラグインの説明でお茶を濁します。
NERD Commenterです。
"The NERD Commenter"
http://www.vim.org/scripts/script.php?script_id=1218
コメントアウトするときに便利なんですが
オプションにたくさん種類があってどう使って良いのかわからなくなるのがこのプラグイン。
自分が使っているモノを紹介します。
まず基本設定の部分。
" Nerd_Commenter の基本設定 let g:NERDCreateDefaultMappings = 0 let NERDSpaceDelims = 1
上の方でデフォルトのキーマッピングをオフにして好きなキーマッピングに変えています。
理由は後々・・・。
また下の方ではコメントアウトした際のスペース数を1に設定しています。
たとえばこの場合1なので「" 」と自動的にはいるわけですね。
では実際に設定している部分です。
nmap <Leader>/ <Plug>NERDCommenterToggle vmap <Leader>/ <Plug>NERDCommenterToggle
行を対象にコメントアウトを行います。
「コメントアウトする」と「コメントアウトを解除する」は
それぞれ別のキーマップがデフォルトでは割り当てられているのですが、
それぞれ別にマッピングするくらいなら
アウトされているなら解除・されていないならアウトされた方が素敵ですよね?
ということでNERDCommenterToggleを使っています。
デフォルトだと
個人的にしっくり来なかったので、
最初の設定でデフォルトのキーマッピングを解除して
nmapとvmapについて書いているのでノーマルモードとヴィジュアルモードで有効です。
nmap <Leader>/a <Plug>NERDCommenterAppend
これはコメントアウトしてすぐそのコメントを入力するものです。
「" 」と入力されてインサートモードになります。
コメントアウトは行末に作られますから便利ですね。
nmap <leader>/9 <Plug>NERDCommenterToEOL
こっちはカーソルのあるところから行末までをコメントアウトします。
javaなら/* */ と行内で囲まれます。
vmap <Leader>/s <Plug>NERDCommenterSexy
sexyなコメントです・・・ってなに?という感じですが
scalaやjavaなどで複数行コメントする場合に
行選択しておいて
// // //
と単数行コメントアウトにならずに
/* * */
と複数行コメントアウトを入れてくれます。
解除するときはNERDCommenterToggleで解除できるので
ここの例なら上でマップした
素敵ですね?
vmap <Leader>/b <Plug>NERDCommenterMinimal
こちらは複数行のコメントアウトを各行ではなくブロック全体にかけてくれます。
/* hogehoge */
のパターンですね。
ファイルタイプによってこれが不可能なときは各行にコメントアウトが入ります。
このくらいでしょうか。
ちなみに
実際には「
普段はこれしか使いませんね :)
他にもコメントアウトの種類がありますし、
使いやすいキーマッピングもあるでしょうからまだまだ研究します〜。