Замена всего между двумя знаками $ на текст между \ (и \) - PullRequest
2 голосов
/ 05 марта 2019

Я хотел бы, чтобы текст, помещенный между знаками $, заменялся текстом, помещенным между "\ (" и "\)", как в

replace $this text$

на

replace \(this text\)

Iуже пробовал команду "% s / \ $ \ (. * \) \ $ / \ (\ 1 \) /", в результате чего

replace $this text$ and $this also$.

заменяется на

replace \(this text$ and $this also\).

Как этого можно избежать?

1 Ответ

2 голосов
/ 05 марта 2019

Если я понимаю ваш вопрос, я думаю, что вы хотите:

:%s/\$\([^\$]*\)\$/\\(\1\\)/g

Объяснение:

  • Вам необходимо экранировать \ в строке замены
  • Вам нужно [^\$]* вместо .* в строке поиска, т. Е. Последовательность из 0 или более символов, которые "не являются знаком доллара".

Заменит этот текст:

replace $this text$
replace $this text$ and $this also$.

С этим текстом:

replace \(this text\)
replace \(this text\) and \(this also\).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...