Существует ли достойный Vim regexp ИЛИ команда? Что лучший способ состоит в том, чтобы найти не соответствовавшим если else's?

Flickr является ошибкой в ​​URL

string photoUrl = "http://farm{0}.staticflikr.com/{1}/{2}_{3}_n.jpg";

должно быть

string photoUrl = "http://farm{0}.staticflickr.com/{1}/{2}_{3}_n.jpg";
36
задан Chad Birch 3 April 2009 в 22:03
поделиться

3 ответа

:g/[ ^\t]if\|[ ^\t]fi/print

BIGFATOROPERATOR \|. Это назвало оператор чередования. В PCRE это просто |. Этого оставляют в Vim/исключая потому что | используется в другом месте для общих команд (или что-то - FIXME).

70
ответ дан ojblass 27 November 2019 в 05:28
поделиться

Если Вы хотите удалить все другие строки кроме тех, которые имеют, если, еще или fi можно использовать это

%v/\(if\|else\|fi\)/d   

'v' является противоположностью 'g' и удалит любые строки, которые не соответствуют regexp.

Для добавления к тому, какого сказанного strager, символ вертикальной черты '|' оставляют в Vim, я воображаю, потому что Vim предполагает поиск буквенных символов чаще, чем у Вас будет потребность обширного RegExps.

Можно заставить Vim использовать менее вышедший RegExps путем установки 'волшебного' уровня на 'очень' когда в исключая режимом:

Использование "\v" означает, что в шаблоне после всего этого символы ASCII кроме '0 '-'9', ''-'z', ''-'Z' и '_' имеет особое значение. "очень волшебный"

См.: он / волшебство для получения дополнительной информации

Не рекомендуется установить волшебный уровень по умолчанию на 'очень' в vimrc хотя (поскольку справочный файл отмечает).

14
ответ дан FlemishBeeCycle 27 November 2019 в 05:28
поделиться
:h /\|

Если Вы отсутствовали \|, Вы, вероятно, пропустили много других шаблонов "маркеры".

7
ответ дан Luc Hermitte 27 November 2019 в 05:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: