What is your favorite way to comment several lines in Vim?
我经常在Vim中同时评论几行,这种情况经常发生。我所知道的方法并不像TextMate那样快速地评论行。
你最喜欢的方式是什么?
我目前使用:
方法1:
- 转到第一行的char并使用blockwise visual mode(ctrl-v)
- 向下/向上,直到选择要注释掉的每一行的第一个字符
-
使用shift-i然后输入注释字符(Ruby的
# ) - 使用esc将注释字符插入每一行
方法2:
- 使用线性可视模式选择需要注释掉的行(shift-v)
-
键入
: ,它会为您提供:'<,'> 提示符,您可以将其扩展为:'<,'>s/^/#/
方法3:
- 转到要注释的第一行
-
制作书签,例如输入
mm - 转到要注释掉的最后一行
-
输入
:'m,.s/^/#/
我最喜欢方法1,但我仍然希望有更好的方法。
我想你描述了最流行的评论代码的方法,但如果你愿意使用Vim Scripts,请看看:
- NERD评论者
- EnhCommentify.vim
- tComment
我使用正则表达式部分的键盘映射,但我首先进行相同的视觉选择。通常使用:
1 | vip |
获得视觉块(段落视觉选择)
然后使用
1 2 | \cc \co |
用于评论添加/删除(cc,因肌肉记忆原因而选择)
使用.vimrc中定义的映射为:
1 2 | vmap <leader>cc :s/^/#/<cr> vmap <leader>co :s/^#//<cr> |
虽然这是相当陈旧的我只是想添加我的解决方案,这个解决方案非常类似于所有人,但增加了不亮的功能。在我的.vimrc文件中,我有以下地图:
1 2 | :vmap `c :s/^/\/*/<cr>gv:s/$/*\//<cr>:noh<cr>i :vmap `r :s/^\/\*//<cr>gv:s/\*\/$/<cr>:noh<cr>i |
注意:我使用/ *代码行* /注释样式与旧的c代码兼容。
在vim中我只是突出显示这些行并按下`c来发表评论'和`r来删除评论。
我正在为ANSI C单线评论寻找一组命令,我已经尝试了大部分的答案。
它们都不适合我的需要,因为我现在必须使用旧版本的Vim,我无法轻松下载合适的插件,我想出了这些方便的映射:
1 2 | :nnoremap <leader>c :exe"normal mqI/*"<esc> :exe"normal A */"<esc> :exe"normal 'q"<cr> :nnoremap <leader>r ^xxx$xxx^ |
插件是要走的路。它们是可扩展的,它们已经支持您将使用的更多文件类型,它们可以自动切换行的注释状态(换句话说:不需要消耗两个快捷方式,其中一个就足够了)。
请参阅CMS提供的列表。
我通常只是将步骤保存在宏中,然后以我想要的任何方式调用宏。