从给定行到文件末尾删除与模式匹配的行


10

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

我被困住了,因为我第一次尝试的事情似乎并没有达到我想要的效果:

:3,$/^#/d

与其查找模式并删除从3到文件末尾的行,不如从3到通过与该模式匹配的行删除所有行,然后停止。

因此,如何将ex命令应用于一系列行。在这种情况下,它到文件的末尾,但是如果我要对一个标记进行编辑,还是在第10行和第20行之间或其他范围内,它会有所不同吗?

Answers:


15

:global为此使用命令:

:3,$g/^#/d

您可以将其应用于与模式匹配的行:

:3,$g!/^#/d

您可以对其使用完整范围的机制(请参阅参考资料:help :range):

:.,/#define/+3g/^#/d

您可以将其与任何命令一起使用:

:3,$g/^#/s/foo/bar/g

它是Vim中功能最强大的命令之一,:help :global有关详细信息,请参见。


您也可以使用:3,$v/foo/d与模式不匹配的线。:h vglobal
vappolinario 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.