我正在尝试在vim上实现一个简单的替换,但无法正确使用它。我需要在整个文件中删除与模式匹配的所有行。模式是“东西*”,意思是“东西”后跟任何东西,直到行尾。
我尝试:%s/pattern*\n//g
和:%s/pattern*$//g
但没有成功。
有什么想法吗?
干杯!
答案 0 :(得分:6)
使用:g
代替:substitute
。
:g/pattern/d
将删除与pattern匹配的所有行。
对于模式,您的模式将匹配patter
,pattern
,patternn
等。使用通配符.
匹配任何字符。所以你的正则表达式应该是pattern.*$
---但是如果你想完全删除这些行,那么:g/pattern/d
可以解决这个问题。
答案 1 :(得分:0)
根据您使用的vim
版本,您可能会遇到我要提出的问题:
:%s/pattern.*^V^M//g
对于^V
,字面意思是ctrl-v
,然后是ENTER
(^ M)键。 ^V
允许您在不解释字符的情况下输入文字字符。