如果我的文件中包含很多注释,并且想删除从第3行到文件末尾的所有注释,那么最好的处理方法是什么?

我卡住了,因为我第一次尝试的操作似乎并没有实现我想要的功能:

:3,$/^#/d


而不是寻找模式并在其中删除行范围从3到文件末尾,它将删除3到通过与模式匹配的行的所有行,然后停止。线。在这种情况下,它到文件的末尾,但是如果我要对一个标记进行编辑,还是在第10行和第20行或其他范围之间进行编辑,会有所不同吗?

#1 楼

使用:global命令可实现以下目的:
:3,$g/^#/d

您可以将其应用于与模式不匹配的行:
:3,$g!/^#/d

您可以将其与任何命令一起使用:
:.,/#define/+3g/^#/d

它是Vim中功能最强大的命令之一,请参阅:help :range了解更多信息。

评论


您也可以将:3,$ v / foo / d用于与模式不匹配的行。 :h vglobal

–vappolinario
2015年6月9日19:32