我经常做一些正则表达式替换,因此想要映射一个键来轻松完成。但是,如果在文件中找不到要替换的其中一个正则表达式,则由于E486: Pattern not found
而导致我的键映射停止,并且不会执行进一步的替换。例如。如果我的vimrc中的映射是
map <F12> :%s/spam/foo/<enter>:%s/ham/bar/<enter>:%s/eggs/baz/<enter>
且我的文件中没有ham
,eggs
将无法替代。是否有一个标志我可以放在替换上以忽略错误?我看过:help regex
和:help map
而没有找到任何可用的内容。
或者,是否还有另一种更容易,更明显的方式来实现这一点,我不知道?
答案 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
。