2009-02-20 81 views
35

我正在尝试搜索特定模式的文本文件。如果出现这种模式,则意味着该行的其余部分不需要,因此可以删除。Vim搜索模式,如果发生删除到行尾

我已经尝试使用以下命令,但迄今为止不成功。

:%s/{pattern}/d$ 

:g/{pattern}/d$ 

如果任何人有他们将不胜感激

回答

50

:%s/{pattern}.*//工作有什么建议?

+0

我尝试以下的整个文件以下行\\后删除所有内容。示例行包含:测试黑色棕色蓝色\\ c \ d \ k - - :%s /\\.*// – Stryker 2017-02-02 18:17:14

+0

不应该是`:%s /\\\\.*//`(反斜杠需要反斜杠) – mirod 2017-02-02 19:45:48

29

另外,以下也适用

:g/{pattern}/normal nd$ 

对于你想,我会mirod的建议去什么。我发布的内容更加灵活一些,可能在相似的情况下派上用场。

说明:

在每个行,其中模式匹配,执行下面的正常模式命令 'ND $'。当光标在行首时,'n'跳转到模式,'d $'删除到行尾。

-1
%s/\\(replay-pattern-later\\) pattern2/\1/gc 

这将重播pattern1但消除pattern2。使用“/ gc”全局应用(继续)并提示每个事件。

1

要替换的模式和其他任何使用正则表达式通配符.*

:1,$s/pattern.*//g