caw.vimでコメントアウトのショートカット設定とtoggle化


このエントリーをはてなブックマークに追加

vimで他のエディタと同じようにコメントアウトのショートカット化と、トグル化で切り替えをする方法を調べてたら

どうやらcaw.vimというプラグインが良いみたい

tyru/caw.vim: Vim comment plugin: supported operator/non-operator mappings, repeatable by dot-command, 300+ filetypes

これをつかってキーマップを設定すれば簡単にトグル化できそうであるので使ってみる

環境は

  • MacOS Sierra 10.12.4
  • neovim 0.1.7
  • deinを用いてプラグインを管理(.dein.tomlに記述)

もちろんvimやNeobundleでも管理できるはず

neovimなどについては下記が参考になる

NeoVim、そしてdein.vimへ - Qiita

NeoBundle から dein.vim に乗り換えたら爆速だった話 - Qiita

tyru/caw.vim

comment outをショートカットで行うためのplugin

.vimrcへの設定は2016年ごろより変更などもあるようで下記を参考にした

My Future Sight for Past: caw.vim was changed command name “i, I, a” -> “hatpos, zeropos, dollarpos” on 2016-03-20 and 2016-03-28

上記リンクによると

  • (caw:zeropos:toggle)とした時は 0 でスペースを含む行の先頭(本当に一番先頭)でのコメントオンオフ
  • (caw:hatpos:toggle)は ^ でスペースは含まず行の先頭(インデントしてる場合はそこに移動する)でのコメントオンオフ
  • (caw:dollarpos:toggle)は $ で行末に移動した後のコメントオンオフ

のようである

行末のコメント挿入はまぁ設定しなくてもいいかな、ひとまず

というわけで、ノーマルモードとヴィジュアルモードでコメントアウトをトグルさせるためにそれぞれ以下のように設定した


.dein.toml

.dein.tomlは以下のように記載するだけ

他のプラグインと同じ書き方

.dein.toml
1
2
[[plugins]]
repo = 'tyru/caw.vim'


.vimrc

自分は

  • バックスラッシュ+c (\c) で行頭(インデントあり)にコメントのトグル
  • バックスラッシュ+カンマ (\,) で行頭(インデント関係なく行頭)にコメントのトグル

を設定するために.vimrcは以下のようにした

.vimrc
1
2
3
4
5
6
7
" 行の最初の文字の前にコメント文字をトグル
nmap <Leader>c <Plug>(caw:hatpos:toggle)
vmap <Leader>c <Plug>(caw:hatpos:toggle)
" 行頭にコメントをトグル
nmap <Leader>, <Plug>(caw:zeropos:toggle)
vmap <Leader>, <Plug>(caw:zeropos:toggle)


以上で、コメントがまた簡単になった便利


このエントリーをはてなブックマークに追加