如何选择一堆文本并将其全部注释掉?

当前我转到第一行,进入插入模式,然后键入# left-arrowdown-arrow,然后重复该序列,也许可以通过使用.重复功能来完成每一行来节省一些击键。

无论如何,我可以(例如)在可视模式下选择多行或使用一系列行和一个ex('colon')命令,并在该范围内用#注释掉所有行,以使其成为“块注释”。

快速“删除注释”的能力(删除#的块注释也很好。

评论

stackoverflow.com/questions/2462794/…

sed'/ START / i \ <<“ COMMENT” \ / END / a \ COMMENT \ n'-您只需更改两行。并查看您的评论,将cat添加到开头。

#1 楼

范围:

您可以使用以下命令进行操作:

进行注释:

:66,70s/^/#


进行注释:

:66,70s/^#/


很显然,这里我们注释的行数从66到70(含)。

评论


您确定不需要在范围后插入“ s”吗?

–lfree
17年5月27日在7:51



也许在您的vim版本上,但我敢肯定,“ s”是从“替代” / ^开始的,以/#(哈希)开头。这里没有雾气。

–periket2000
17年5月29日在13:40

如果要注释//,而不是#,则需要使用\对其进行转义。 :66,70s / ^ / \ / \ /

–埃里克·霍金斯(Eric Hodgins)
19-6-26在17:51



可以参考此链接作者在此提及了多种方法以供评论

–葡萄酒
20 May 10 '14:20



#2 楼

可视块模式

首先,将光标移动到要注释的块代码中第一行的第一个字符,然后键入:

Ctrl + v                                    


然后vim将进入VISUAL BLOCK模式。使用j向下移动光标,直到到达代码块的最后一行。然后输入:

Shift + i


现在,vim进入INSERT模式,并且光标位于第一行的第一个字符处。最后,键入#,然后键入ESC,现在将对代码块进行注释。

要进行分解,请执行相同的操作,但不要键入Shift + I,只需键入x即可在以#模式突出显示它们后删除所有VISUAL BLOCK

评论


甚至可以使用/跳至端点,或者使用%(如果端点与之匹配)(或{如果向后跳)。我更喜欢视觉模式,而不是指定范围...

–伊兹卡塔
2014年3月20日在18:55

似乎不起作用。可视模式为+ 1,-1为,因为Shift I仅在选择的第一行打开INSERT。不过,这可能只是OSX的问题,因为这种操作系统与Unix完全不一致,这非常常见。

–马特·克拉克(Matt Clark)
2015年6月29日在20:32



@MattClark:您尝试过了,不是吗?那应该如何工作。编辑第一行后,按ESC退出插入模式,所有内容都将应用于所选的其余行。

–cuonglm
2015年6月30日在2:39



与MacVim一起使用。重要的是要注意,它仅适用于VISUAL BLOCK,而不适用于VISUAL或VISUAL LINE模式。

– atamanroman
16年1月12日在9:58

请阅读@MattClark的注释:“ + 1为可视模式”,然后他声明该注释在他的计算机(OSX)上不起作用。我在macx上的OSX上尝试了它,并且它可以工作,但是您必须使用视觉块,而不是视觉块(也不是视觉线)。

– atamanroman
16年1月12日在10:32

#3 楼

替代

为了完整起见,这是另一种方法:


v进入可视模式

选择您要的行注释(up / down箭头或j / k
输入:s/^/# /,其翻译为:在选择(:)中将行首(^)替换为`#'


#4 楼

标记:
以下步骤在命令模式下完成:

转到第一行,并将带有 mt

的标记设置到要调整范围的行
发出命令:'t,.s/^/#/


说明


m#,其中#表示任何字母,将标记放在您的当前位置。以后可以使用'#引用该位置,其中#与以前的字母相同。在本例中,我们使用字母t

命令:'t,.s/^/#/的内容如下:


:复杂命令的前缀

't,.定义以下命令应应用的范围。在我们的情况下,它是从标记't到当前行.


s/^/#/是一个替换公式,将所有行首^替换为文字字符#





评论


+1标记是我刚刚开始使用的好选择。

–迈克尔·杜兰特(Michael Durrant)
2014年3月20日在17:49

#5 楼

插件
有一个插件,它提供了一种基于正在使用的文件系统进行注释的有效方法。
此外,此答案还讨论了如何将NERD commenter用于vim。这里讨论了有关如何使用该插件的更多基本说明。

#6 楼

如前所述,使用NERDCommenter,但如果我不可用,则使用可视模式。我进入可视行模式,进行选择,通常是空白块,因此我进入V {然后使用Ctrl + Q切换到可视块模式,然后使用I在行的开头插入注释符号,以便进行注释出一段文字,我会做

V{<C-Q>I#<Esc>