Например, если бы я хотел найти и заменить строками, содержащими обратную или прямую косую черту, как это можно сделать в vim? Спасибо!
Примеры поиска и замены: :%s/foo/bar/g
что, если бы я хотел найти все вхождения <dog/>и заменить его на<cat\>
Например, если бы я хотел найти и заменить строками, содержащими обратную или прямую косую черту, как это можно сделать в vim? Спасибо!
Примеры поиска и замены: :%s/foo/bar/g
что, если бы я хотел найти все вхождения <dog/>и заменить его на<cat\>
vi --helpна моем сервере НЕ объясняется экранирование специальных символов ... вот почему люди приходят в stackoverflow, чтобы начать с ...
:help magic- это то, что вы вводите внутри vim. Это не аргумент командной строки для vim.
Ответы:
Точно так же вы экранируете символы в большинстве других программ для Linux с обратной косой чертой:
:%s/<dog\/>/<cat\\>
Но учтите, что вместо этого вы можете выбрать другой разделитель:
:%s@<doc/>@<cat\\>@
Это избавит вас от необходимости печатать все эти трудоемкие, запутанные обратные косые черты в шаблонах с множеством косых черт.
Из документации :
Вместо
/окружающего шаблон и заменяющей строки можно использовать любой другой однобайтовый символ, но не буквенно-цифровой символ\,"или|. Это полезно, если вы хотите включить/в шаблон поиска или строку замены.
sсчитается разделителем. Я не могу понять, где я нашел список в документации, но я уверен, что по крайней мере /:;*%@#действительный.
%s:<dog/>:<cat>
Вы можете заменить разделители /, если они раздражают определенные шаблоны.
:разделителя. Я не знал, что ты можешь это использовать. Я всегда использовал @во времена «беспорядка побега»
Синтаксис:
:%s/<dog\/>/<cat\\>/g
Я искал что-то подобное, чтобы искать значения регистров, содержащие /символ (для записи макроса). Решением было поиск с использованием ?токена вместо /.
?будет выполняться обратный поиск, и это не то же самое.
обратная косая черта обратная косая черта звезда
/(<- the prompt)\/\*
так что после того, как вы наберете, это выглядит как
/\/\*