我喜欢使用C语言的ansi注释
/* ... */
,下面是我的技巧,你可以根据不同情况进行适当调整。
使用/* ... */
进行注释
选中文本(从开头开始,启动可视块,用}
跳转):
<c-V>}
在所选内容中输入要应用的命令。
:norm i
命令应该像这样::'<,'>norm i /* ^[$a */
详情请参见(i*)。
取消注释/* ... */
选择文本(与之前一样,或者您喜欢的其他方式):
<c-V>}
在选择区域中输入要应用的命令
:norm :s-\s*/\*\s*-<c-v><enter>$bbld$
命令将会是::'<,'>norm :s-\s*/\*\s*-^M$bbld$
详情请见(ii*)。
结果
作用是逐行注释:
Comment block
Comment block
Comment block
变为(反之亦然):
最好将其保存为一些 map
或 @reg
放在您的 .vimrc
中,因为需要键入很多内容。如果您更喜欢使用单个 /*
和 */
来代替整个块,则可以使用以下命令:
使用单个 /* */ 注释整个块
通过录制例如 qc
的方式将其保存到寄存器中,然后在要注释的段落开头插入:
v}di/* */<esc>hhhp
别忘了再次输入 q
,以结束记录。
详见 (iii*)。
取消注释代码块中的一对 /* */
将其存入寄存器,比如说,@u
。将光标放在代码块内的任意位置,并执行以下操作:
?/\*<enter>xx/\*/<enter>xx
通过完成 q
命令保存寄存器。
详见(iv*)。
结果
效果是多行的单个注释:
Comment block
Comment block
Comment block
变成(反之亦然):
说明
(i*) 它通过使用norm
实现,其在每个选定的行中重复应用相同的命令。该命令简单地插入一个/*
,找到该行的末尾,并最终插入*/
。
:norm i
(ii*) 它还使用norm
在每行上重复搜索/替换。搜索spaces /* spaces
并替换为空。之后,找到行末尾,向后两个单词,向右移动一个字母,删除至结尾。
:norm :s-\s*/\*\s*-<c-v><enter>$bbld$
(iii*) 通过v}
选择段落,删除它,插入一个打开和关闭的注释,移动到它的中间并粘贴已删除的块。
v}di/* */<esc>hhhp
(iv*) 在代码中间,往回查找 /*
并删除;往前查找 */
并删除。
?/\*<enter>xx/\*/<enter>xx