LINUX.ORG.RU

Vim: выполнение нескольких замен одновременно


0

0

В виме как изместо можно написать сразу несколько команд через пайп. Например в командом режиме можно написать :%s/AAA/foo/ | %s/BBB/bar/ и нажать Enter. Выполнится сначала первая подстановка, потом вторая.

Проблема в том, что если в тексте нет подстроки AAA, то vim сообщит нам: Pattern not found: AAA и не будет выполнять вторую подстановку.

Как избежать этого? Необходимо чтобы все команды выполнились не смотря на то, что для некоторых шаблонов может не найтись соответствия. Возможно ли это сделать?

Просьба не предлагать переписать регулярное выражение, чтобы две команды стали одной. Кстати, если скажите как одной командой заменить AAA на foo, и BBB на bar, буду признателен. Разговор про вим 6.2

Заранее спасибо

anonymous

Ответ на: комментарий от sdio

затем, чтобы вставить в меню один пункт а не два. И выбирать один пункт а не два. И экономить время в два раза :-)

anonymous
()
Ответ на: комментарий от kosmonavt

Космонафт, вопрос перечитай .

Вот это ты к чему написал:%s/AAA/foo/e|%s/BBB/bar/ ? Это что, одна команда ? Раздражают дятлы.

anonymous
()
Ответ на: комментарий от anonymous

Дятлы не раздражают, они задалбывают :)

1-я часть вопроса.

>Необходимо чтобы ВСЕ КОМАНДЫ выполнились не смотря на то, что для некоторых шаблонов может не найтись соответствия.

kosmonavt
()
Ответ на: комментарий от anonymous

>типа модификатор e решает

:help :substitute

---
[e]     When the search pattern fails, do not issue an error message
        and, in particular, continue in maps as if no error occurred.
---

kosmonavt
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.