2

В vim у нас есть команда :substitute которая ищет текстовый шаблон и заменяет его текстовой строкой.

Как справиться с текстовым шаблоном с пунктуацией в нем?

Минимальный рабочий пример: текстовый шаблон $S(\R^2)$ должен быть заменен текстовой строкой $\Sm$ . Изменить: Как мы также учитываем тот факт, что текстовый шаблон может быть внутри другого текстового шаблона?

1 ответ1

2

Похоже, это вопрос побега персонажей. Для вашего примера

:s/\$S(\\R^2)\$/$\\Sm$/

заменит первое вхождение S(\N^2) на \Sm . \\ избегает \ (точно так же, как вы делаете \* когда хотите представить символ *). Без этого, например, строка \r будет означать возврат каретки. Причина, по которой вам не нужно экранировать $ во второй части :s (не знаю его технического термина), заключается в том, что он не имеет для него особого значения, а означает конец строки в первая часть.

Вы должны добавлять обратную косую черту в скобки только тогда, когда вы хотите захватить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .