您最喜欢在Vim中评论几行的方式是什么?

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^

c注释掉一行并返回该行的开头。

r从当前行的开头和结尾删除注释。


插件是要走的路。它们是可扩展的,它们已经支持您将使用的更多文件类型,它们可以自动切换行的注释状态(换句话说:不需要消耗两个快捷方式,其中一个就足够了)。

请参阅CMS提供的列表。


我通常只是将步骤保存在宏中,然后以我想要的任何方式调用宏。