Vim:忽略映射替换列表中的错误

kth*_*thy 10 regex vi vim

我经常做一些正则表达式替换,因此想要映射一个键来轻松完成.但是,如果在文件中找不到要替换的其中一个正则表达式,则我的键映射会因此而停止,E486: Pattern not found并且不会执行进一步的替换.例如,如果我的vimrc中的映射是

map <F12> :%s/spam/foo/<enter>:%s/ham/bar/<enter>:%s/eggs/baz/<enter>
Run Code Online (Sandbox Code Playgroud)

ham在我的文件中没有,eggs不会被替换.是否有一个标志我可以放在替换上以忽略错误?我已阅读:help regex,:help map但没有找到任何可用的东西.

或者,是否还有另一种更容易,更明显的方法可以解决这个问题?

Bir*_*rei 21

/e标志添加到每个替换命令.它不显示错误消息,并继续,就好像没有出现错误.这将是新的映射:

map <F12> :%s/spam/foo/e<enter>:%s/ham/bar/e<enter>:%s/eggs/baz/e<enter>
Run Code Online (Sandbox Code Playgroud)


rom*_*inl 9

您可以在模式的末尾添加"标志":

:%s/spam/foo/e
Run Code Online (Sandbox Code Playgroud)

如果找不到spam并允许您继续,则不会发出错误.

:help flags.