На каждом диалекте регулярного выражения *
- это жадный квантификатор, который означает «0 или более предшествующего атома, как можно больше», тогда как он означает «любой символ», когда используется как глобус (в вашей оболочке,например).
Поскольку в Vim для подстановок используются регулярные выражения, а не глобусы, должно быть понятно, почему :%s/=*/*/gc
и %s/$*$/<math>*</math>/gc
не делают ничего полезного.
Еще одна проблема с вашимПопытка состоит в том, что вы как-то ожидаете, что механизм регулярных выражений будет угадывать, какую часть совпадения использовать в замене.Это делается путем повторного использования «подвыражений», иногда называемых «группами захвата».
См. :help \(
, :help \1
и http://vimregex.com/.
- Изменитьзаголовки
#title
, ##subtitle
и т. п. =title=
и ==subtitle==
,
:%s/^\(#\+\)\(.*\)/\=repeat('=',len(submatch(1))).submatch(2).repeat('=',len(submatch(1)))
Обратите внимание, что заголовки уценки имеют неправильный формат.