Edit: Ze względu na nowe informacje, poniższy zastąpienie prawdopodobnie działa:
:%s/<filename>\zs.\{-}\ze<\/filename>/\=substitute(submatch(0), '\/', '\', 'g')/
wyjaśnieniu:
%s
: substytut całej pliku
/<filename>
: początek wzorca i statyczne tekst do porównania z
\zs
: początek dopasowanego tekstu
.\{-}
: dowolny charakter, nie chciwy
\ze
: koniec dopasowanego tekstu
<\/filename>/
: koniec ukierunkowany znacznikiem i wzór
\=
: ocena zastępstwo jako vim ekspresji
substitute(submatch(0), '\/', '\', 'g')/
: wymień wszystkie /
z \
w dopasowanym tekście.
Oryginalny odpowiedź:
mam zamiar założyć, to znaczy znaczniki XML stylu tutaj. Chciałbym wizualnie wybrać obszar, na którym chciałbym operować, a następnie użyć atomu regex \%V
, aby działał tylko na tym wyborze.
vit:s!\%V/!\\!g
Powinien załatwić sprawę. Zauważ, że po naciśnięciu :
, vim automatycznie dodać zakres do selekcji wizualnej, rzeczywista komenda podstawienie będzie wyglądać następująco:
:'<,'>s!\%V/!\\!g
@ewok Co sprawia, że ten jeden inny od pozostałych setek edytorze -Powiązane pytania? – deviousdodo
@wok: całkiem dobrze ustalono, że pytania vim (w szczególności takie pytania do wyrażeń regularnych) należą do kategorii "narzędzia powszechnie używane przez programistów" wyraźnie wymienione jako "na temat" w podziękowaniach – jkerian