Все специальные символы, которые нужно экранировать при поиске / замене шаблона vim? - PullRequest
0 голосов
/ 27 ноября 2018

Есть ли их список?У меня проблема, когда я хочу заменить {inspect.stack()[0][3]} на {inspect.stack()[0][3]} called from {inspect.stack()[1][3]} в моем коде Python.И я не могу найти полный список из Интернета.

1 Ответ

0 голосов
/ 27 ноября 2018

:substitute (команда)

Чтобы выполнить буквенную подстановку, укажите «очень-номагический» :help /\V (или экранируйте все специальные символы поиска ^$.*[~) и «с учетом регистра "/\C и экранирующий символ :substitute (обычно /) и любые обратные слеши (\) в источнике.Разрывы строки должны быть изменены с ^M на \n.Взятые вместе, для шаблона:

'\V\C' . substitute(escape(literalPattern, '/\'), "\n", '\\n', 'ge')

При замене, & и ~ должны быть экранированы (в дополнение к / и \), если 'magic' опция установлена.(\V здесь не работает).Cp.:help sub-replace-special

escape(literalReplacement, '/\' . (&magic ? '&~' : ''))

substitute() (функция)

Нечто подобное относится и к substitute();& всегда должен быть экранирован, так как 'magic' всегда установлен, и только ~ не должен экранироваться:

substitute(input, '\V\C' . escape(literalPattern, '\'), escape(literalReplacement, '\&')), 'g')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...