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

时间:2009-12-10 20:45:07

标签: vim comments commenting

我经常在Vim中同时评论多行,这种情况经常发生。我所知道的方法并不像TextMate那样快速地评论行。

你最喜欢的方式是什么?

我目前使用:

方法1:

  • 转到第一行的字符并使用逐块可视模式( ctrl - v
  • 向下/向上,直到选择要注释掉的每一行的第一个字符
  • 使用 shift - i 然后输入您的评论字符(Ruby的#
  • 使用 esc 将注释字符插入每一行

方法2:

  • 使用线性可视模式选择要注释掉的行( shift - v
  • 键入:,它会为您提供:'<,'>提示,您可以将其扩展为:'<,'>s/^/#/

方法3:

  • 转到要注释的第一行
  • 制作书签,例如输入mm
  • 转到要注释的最后一行
  • 输入:'m,.s/^/#/

我最喜欢方法1,但我仍然希望有更好的方法。

6 个答案:

答案 0 :(得分:9)

我认为您描述了最流行的评论代码的方法,但如果您愿意使用Vim Scripts,请查看以下内容:

答案 1 :(得分:3)

我使用正则表达式部分的键盘映射,但我首先进行相同的视觉选择。通常使用:

vip

获取视觉块(段落视觉选择)

然后使用

\cc
\co

用于评论添加/删除(cc,因肌肉记忆原因而选择)

使用.vimrc中定义的映射:

vmap <leader>cc :s/^/#/<cr>
vmap <leader>co :s/^#//<cr>

答案 2 :(得分:2)

虽然这是相当陈旧的,但我只是想添加我的解决方案,这个解决方案非常类似于所有人,但增加了不亮的功能。在我的.vimrc文件中,我有以下地图:

:vmap `c :s/^/\/*/<cr>gv:s/$/*\//<cr>:noh<cr>i
:vmap `r :s/^\/\*//<cr>gv:s/\*\/$/<cr>:noh<cr>i

注意:我使用/ *代码行* /评论样式与旧c代码兼容。 在vim中,我只是突出显示这些行,然后按`c进行注释,然后按`r删除注释。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

请参阅list given by CMS

答案 5 :(得分:1)

我正在为ANSI C单行评论寻找一组命令,并且我已经在SO处尝试了大部分答案。

它们都不适合我的需要,因为我现在必须使用旧的7.2版本的Vim,我无法轻松下载合适的插件,我想出了这些方便的映射:

:nnoremap <leader>c :exe "normal mqI/* "<esc> :exe "normal A */"<esc> :exe "normal 'q"<cr>
:nnoremap <leader>r ^xxx$xxx^

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

<leader>r删除当前行开头和结尾的注释。