使用带有搜索模式的 argdo 删除行,同时在 Vim 中抑制错误并要求确认

Ric*_*ron 4 vim

我在 Win 7 上使用 gVim 7.3.46。

这是非常简单的使用argdo搜索args文件的模式取代它同时抑制错误,并要求确认。

:argdo %s/pattern/replace/gec | update
Run Code Online (Sandbox Code Playgroud)

但是,我想删除包含该模式的整行。我使用以下内容。

:argdo %/pattern/d | update
Run Code Online (Sandbox Code Playgroud)

但我无法抑制错误或需要确认。有没有办法做到这一点?谢谢!

(另外,有没有办法设置“更多”?谢谢!)

gar*_*ohn 8

您可以通过在命令前加上 来抑制某些错误:silent。要删除包含模式的行,命令是:g/pattern/d。所以下面应该做你想做的。

:silent argdo g/pattern/d | update
Run Code Online (Sandbox Code Playgroud)

:help :silent
:help :g
Run Code Online (Sandbox Code Playgroud)

要关闭“更多”,

:set nomore
Run Code Online (Sandbox Code Playgroud)

另见

:help 'more'
:help more-prompt
:help messages
Run Code Online (Sandbox Code Playgroud)

如何处理确认取决于需要确认的内容。!在命令后面加上 a通常意味着“无论如何都要做”。

  • 要让 `s///gec` 删除整行,请使用:`%s/.*pattern.*\n//ec`。即使对于 DOS 文件,`\n` 也将匹配行尾标记。如果要删除整行,则不需要 `g`。 (2认同)