Редактировать: Учитывая новую информацию, подстановка ниже, вероятно, будет работать:
:%s/<filename>\zs.\{-}\ze<\/filename>/\=substitute(submatch(0), '\/', '\', 'g')/
Объяснение:
%s
: замена по всему файлу /<filename>
: начало шаблона и статического текста для сопоставления с \zs
: начало сопоставленного текста .\{-}
: любой символ, не жадный \ze
: конец сопоставленного текста <\/filename>/
: конец целевого тега и шаблона \=
: оценить замену как выражение vim substitute(submatch(0), '\/', '\', 'g')/
: замените все /
на \
в сопоставленном тексте.
Оригинальный ответ:
Я предполагаю, что вы имеете в виду XML-стильтеги здесь.Я бы визуально выбрал область, над которой вы хотели бы работать, а затем использовал атом \%V
regex, чтобы работать только с этим выбором.
vit:s!\%V/!\\!g
Должен сделать свое дело.Обратите внимание, что при нажатии :
vim автоматически добавит диапазон для визуального выбора, фактическая команда замещения будет выглядеть так:
:'<,'>s!\%V/!\\!g