: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')