如何在Vim中评论单行或一行行?

时间:2011-12-06 07:08:22

标签: css vim comments

在CSS文件中,此行超过5条规则。

border: 1px solid black;

我想像这样评论这一行:

/*border: 1px solid black;*/

是否有快捷方式为所有5次出现执行此评论?

我可以指定一个键来评论一行或一行吗?

我不想搜索和替换这一行,我想设置一个键,这样当我悬停一行并按下该键时,该行将被注释或选择一行或选择一行,如果我按下该键,则会对该行或行块进行注释。

3 个答案:

答案 0 :(得分:10)

我建议使用一个宏。 Vim会自动保存宏,并且可以跨会话使用。

录制宏类型:q<letter><commands>q。其中<letter>是来自a-z的任何字母,表示将保存宏的寄存器。之后,您只需键入要录制的命令,最后再次按q即可停止录制。

在您的情况下,您可以执行以下操作。按q,然后按a选择a注册,然后输入插入模式并在行的开头和结尾输入/**/ 。再次按q可停止录制。

现在只需将光标移动到任意一行,然后按@a即可在该行上执行宏。

答案 1 :(得分:3)

为什么不使用正则表达式?

:1,$s/border: 1px solid black;/\/*border: 1px solid black;\*\//

1,$s表示您的替换应该从第1行到最后一行$。请注意,您必须转义*/等字符。

根据Stackoverflow上的this问题,您可以在.vimrc中添加以下内容

vnoremap <C-r> "hy:%s/\(<C-r>h\)/\/\*\1\*\//gc<left><left><left>

您现在可以直观地标记一条线并按 ctrl + r ,这将为您提供正确的正则表达式。现在,如果要对其进行注释,可以逐行询问,并且可以通过按 y 来执行此操作。

答案 2 :(得分:2)

您必须为VIM尝试NERD Commenter插件。恕我直言这个插件是这项任务的最佳选择。