我喜欢/*…*/(安西评论),所以这是我给你的诀窍。当然,您可以调整它以适应不同的情况。
注释/**/
选择文本(转到开始,开始视觉块,用}跳转):
<c-V>}
键入要在选择中应用的命令
:norm i/* <c-v><esc>$a */
命令将显示为::'<,'>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
变为(反之亦然):
/* Comment block */
/* Comment block */
/* Comment block */
最好将其保存为.vimrc中的一些map或@reg,因为它需要大量输入。如果您喜欢单个/*和*/而不是整个块,请使用:
用单个/**/整个块注释
将其保存在一个寄存器中,记录,例如,qc,然后在段落开头注释:
v}di/* */<esc>hhhp
不要再忘记q,完成记录。
详见(iii*)。
从块中取消注释单个/**/
将其保存在寄存器中,例如@u。将光标放在块内的任意位置,然后:
?/\*<enter>xx/\*/<enter>xx
通过完成q命令保存寄存器。
详见(iv*)。
后果
效果是多行的单个注释:
Comment block
Comment block
Comment block
变为(反之亦然):
/* Comment block
Comment block
Comment block */
解释
(i*)它通过使用norm来工作,norm在每个选定的行中重复应用相同的命令。命令只需插入一个/*,找到该行的结尾,然后插入*/
:norm i/* <c-v><esc>$a */
(ii*)它还使用规范在每一行重复搜索/替换。搜索空格/*空格,然后不替换。之后,找到行的结尾,返回两个单词,右对齐一个字母,删除到末尾。
:norm :s-\s*/\*\s*-<c-v><enter>$bbld$
(iii*)通过v}选择段落,删除它,打开和关闭插入注释,移动到其中间并粘贴删除的块。
v}di/* */<esc>hhhp
(iv*)中间的任何位置,向后查找a/*,删除它;查找转发的*/,将其删除。
?/\*<enter>xx/\*/<enter>xx