Многократный поиск и замена в одной строке - PullRequest
57 голосов
/ 19 января 2011

Если я сделаю что-то вроде:

:% s / aaa / bbb / |% s / 111/222 /

и при первом поиске и замене не найдено ни одного совпадения, второй поиск и замена не будут выполнены.Есть ли способ заставить vim продолжать работу, даже если команда «не прошла»?

1 Ответ

89 голосов
/ 19 января 2011

Попробуйте

:%s/aaa/bbb/e | %s/111/222/e

и читать

<a href="https://vimhelp.appspot.com/change.txt.html#%3As_flags" rel="nofollow noreferrer">:help :s_flags</a>

особенно запись под [e] :

 When the search pattern fails, do not issue an error message and, in
 particular, continue in maps as if no error occurred.  This is most
 useful to prevent the "No match" error from breaking a mapping.  Vim
 does not suppress the following error messages, however:
 Regular expressions can't be delimited by letters
 \ should be followed by /, ? or &
 No previous substitute regular expression
 Trailing characters
 Interrupted
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...