Vim: игнорирование ошибок в списке сопоставленных подстановок

у меня есть ряд замен регулярных выражений, которые я регулярно делаю, и поэтому хочу карту ключ, чтобы сделать это легко. Однако, если один из замещаемых регулярных выражений не найден в файле, мое сопоставление ключей останавливается из-за 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 не найдя ничего полезного.

в качестве альтернативы, есть ли другой, более простой, более очевидный способ сделать это, что мне не хватает?

2 ответов


добавить /e флаг для каждой команды замещения. Он не показывает сообщения об ошибках и продолжается, как будто ошибка не произошла. Это будет новое отображение:

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

вы можете добавить "флаг" в конце шаблона:

:%s/spam/foo/e

не будет плевать на ошибку, если он не найдет spam и позвольте вам продолжить.

посмотреть :help flags.