vim:用no行替换一个线条图案

时间:2011-05-05 08:45:33

标签: regex vim

我正在尝试在vim上实现一个简单的替换,但无法正确使用它。我需要在整个文件中删除与模式匹配的所有行。模式是“东西*”,意思是“东西”后跟任何东西,直到行尾。 我尝试:%s/pattern*\n//g:%s/pattern*$//g但没有成功。 有什么想法吗?

干杯!

2 个答案:

答案 0 :(得分:6)

使用:g代替:substitute

:g/pattern/d

将删除与pattern匹配的所有行。

对于模式,您的模式将匹配patterpatternpatternn等。使用通配符.匹配任何字符。所以你的正则表达式应该是pattern.*$ ---但是如果你想完全删除这些行,那么:g/pattern/d可以解决这个问题。

答案 1 :(得分:0)

根据您使用的vim版本,您可能会遇到我要提出的问题:

:%s/pattern.*^V^M//g

对于^V,字面意思是ctrl-v,然后是ENTER(^ M)键。 ^V允许您在不解释字符的情况下输入文字字符。