VIM:删除文件中所有行的特定单词之前的所有字符

Anu*_*hke 16 vim

我需要一个vim命令来删除文件中所有行的特定单词之前的所有字符

例如: 输入:

asdfasdfasdfscccHello

qwerqwerHello

24351243vsfgertHello

输出:

你好

你好

你好

pfn*_*sel 36

如果要在"Hello"之前删除所有字符,则可以执行此操作

:%s/.*Hello/Hello/
Run Code Online (Sandbox Code Playgroud)

请注意,这.*是贪婪的,即它会吃掉所有出现的"Hello",直到找到最后一个.如果你有一条线:

abcHellodefHelloghi
Run Code Online (Sandbox Code Playgroud)

它会成为

Helloghi
Run Code Online (Sandbox Code Playgroud)

如果你想要一个非贪婪的解决方案,试试吧

:%s/.\{-}Hello/Hello
Run Code Online (Sandbox Code Playgroud)

  • 最佳方案.救了我的命 (2认同)