删除突出显示的搜索模式之前/之后的所有文本

Rem*_*man 13 vim search

我知道在VIM中如何搜索字符串并删除文本直到行的开头/结尾但我想知道是否也可以在突出显示的搜索模式之前或之后删除所有文本.

Ran*_*ris 14

如果您想在所有行中执行此操作,并且不想重新键入搜索字词,我建议您执行以下操作:

:%s/.*\ze<Ctrl-r>///
Run Code Online (Sandbox Code Playgroud)

这样做是:

  • %s/:替换文件中的所有行
  • .*:匹配任何角色
  • \ze:结束匹配,因此模式的其余部分不会被替换
  • <Ctrl-r>/:从'/'寄存器插入文本(这是搜索寄存器)
  • //:什么都不替换

编辑:忘了后续部分.我建议同时删除这两个是:

:%s/.*<Ctrl-r>/.*/<Ctrl-r>//
Run Code Online (Sandbox Code Playgroud)


xof*_*fon 12

要在FOO之前删除同一行上的文本:

:s/^.*\(FOO\)/\1/

  • 应该是``:s/\(FOO \).*$ /\1 /``.(必须逃脱. (3认同)
  • :S/\(FOO \)*$ /\1 / (2认同)