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

时间:2012-01-16 12:24:45

标签: regex vim vi

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

map <F12> :%s/spam/foo/<enter>:%s/ham/bar/<enter>:%s/eggs/baz/<enter>

且我的文件中没有hameggs将无法替代。是否有一个标志我可以放在替换上以忽略错误?我看过:help regex:help map而没有找到任何可用的内容。

或者,是否还有另一种更容易,更明显的方式来实现这一点,我不知道?

2 个答案:

答案 0 :(得分:18)

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

map <F12> :%s/spam/foo/e<enter>:%s/ham/bar/e<enter>:%s/eggs/baz/e<enter>

答案 1 :(得分:9)

您可以添加&#34;标记&#34;在模式结束时:

:%s/spam/foo/e

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

请参阅:help flags

相关问题