方法一: 常规方法
先CTRL-V
选中多行,然后把光标移动到行首0
,然后I
进入INSERT模式,然后输入//
,最后<ESC>
退出。等待一秒钟左右后,选中的所有行都被//
注释。
方法二: 对方法一进行包装
方法一的方便之处是,无需定义任何快捷键,但操作步骤较多,并且最后还要等一秒钟。另一方面,对于 VIMer 来说,加几句脚本根本不是什么事儿。所以,最直观的思路就是对这个流程进行包装。
由于个人平时比较习惯V
选择多行进行剪切、复制等操作,很少有场景使用CTRL-V
。所以,我的思路是通过V
选择多行,然后按下一个快捷键完成注释。快捷键的定义如下:
vnoremap <F9> <c-v>0I//<ESC>
方法三:行首替换
通过V
选中多行后,可能使用:s
命令,在选中的行中进行替换。利用这个特性,可以这样定义快捷键:
vnoremap <F9> :s/^/\/\//<ENTER>
总结
个人真正使用的,是方法三,因为方法三更灵活。按照这个思路,还可以定义去掉注释、单行注释的功能。
" 注释多行,注释前,用 V 选择多行
vnoremap <F9> :s/^/\/\//<ENTER>
" 取消注释多行,取消注释前,用 V 选择多行
vnoremap <F10> :s/^\/\///<ENTER>
" 注释单行,在NORMAL模式下直接操作
nnoremap <F9> :s/^/\/\//<ENTER>
" 取消注释单行,在NORMAL模式下直接操作
nnoremap <F10> :s/^\/\///<ENTER>