Как избежать обратной косой черты и косые черты в поиске/поиске VIM?
Например, если бы я хотел найти и заменить строки, содержащие обратные или косые черты, как это сделать в vim? Спасибо!
Примеры
Найти и заменить: :%s/foo/bar/g
что, если бы я хотел найти все вхождения <dog/>
и заменить его на <cat\>
Ответы
Ответ 1
Точно так же вы избегаете символов больше всего в Linux-программах с обратной косой чертой:
:%s/<dog\/>/<cat\\>
Но обратите внимание, что вместо этого вы можете выбрать другой разделитель:
:%[email protected]<doc/>@<cat\\>@
Это избавит вас от необходимости вводить все эти трудоемкие, запутывающие обратные косые черты в шаблонах с тонны косых черт.
Из документации:
Вместо /
который окружает шаблон и заменяющую строку, вы можете использовать любой другой однобайтовый символ, но не буквенно-цифровой символ \
, "
или |
. Это полезно, если вы хотите включить /
в шаблон поиска или замену строка.
Ответ 2
%s:<dog/>:<cat>
Вы можете заменить /delimiters, если они раздражают определенные шаблоны.
Ответ 3
Процитировать их с обратной косой чертой. Кроме того, он часто помогает использовать другой разделитель, кроме слэша.
:%s#<dog/>#<cat\\>#
или если вы должны использовать слэш в качестве разделителя командной строки
:%s/<dog\/>/<cat\\>/
Ответ 4
Синтаксис:
:%s/<dog\/>/<cat\\>/g
Ответ 5
Я искал что-то подобное, чтобы искать значения регистра, содержащие символ /
(для записи макроса). Решение заключалось в поиске с использованием токена ?
вместо /
.
Ответ 6
обратная косая черта с обратной чертой
/(<- the prompt)\/\*
поэтому после ввода типа он выглядит как
/\/\*