Как избежать обратной косой черты и прямой косой черты в VIM find / search? - PullRequest
81 голосов
/ 17 марта 2010

Например, если бы я хотел найти и заменить на строки, содержащие обратную или прямую косую черту, как бы это было выполнено в vim?Спасибо!

Примеры поиска и замены: :%s/foo/bar/g

что, если я хочу найти все вхождения <dog/> и заменить его на <cat\>

Ответы [ 6 ]

130 голосов
/ 17 марта 2010

Точно так же, как вы экранируете символы в большинстве программ linuxy, с обратной косой чертой:

:%s/<dog\/>/<cat\\>

Но учтите, что вместо этого вы можете выбрать другой разделитель:

:%s@<doc/>@<cat\\>@

Это избавит вас от необходимости печатать все эти трудоемкие, запутанные обратные слеши в шаблонах с кучей косых черт.

Из документации :

Вместо /, который окружает строку шаблона и замены, вы может использовать любой другой однобайтовый символ, но не алфавитно-цифровой символ, \, " или |. Это полезно, если вы хотите включить / в поиск строка шаблона или замены.

21 голосов
/ 17 марта 2010
%s:<dog/>:<cat>

Вы можете заменить разделители /, если они становятся раздражающими для определенных шаблонов.

8 голосов
/ 17 марта 2010

Цитировать их с помощью обратной косой черты. Кроме того, часто помогает использовать другой разделитель, кроме косой черты.

 :%s#<dog/>#<cat\\>#

или если вы используете косую черту в качестве разделителя команды замены

 :%s/<dog\/>/<cat\\>/
3 голосов
/ 17 марта 2010

Синтаксис:

:%s/<dog\/>/<cat\\>/g
2 голосов
/ 22 июля 2015

Я искал нечто подобное, чтобы искать значения регистра, содержащие символ / (для записи макроса). Решением было поиск с использованием токена ? вместо /.

0 голосов
/ 10 марта 2016

косая черта с обратной косой чертой

/(<- the prompt)\/\*

поэтому после ввода это выглядит как

/\/\*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...