Na przykład, gdybym chciał znaleźć i zamienić na ciągi zawierające ukośniki do tyłu lub do przodu, jak można by to osiągnąć w vimie? Dziękuję Ci!
Przykłady funkcji Znajdź i zamień to: :%s/foo/bar/g
co jeśli chciałbym znaleźć wszystkie wystąpienia <dog/>
i zastąpić je<cat\>
vi --help
na moim serwerze NIE podaje wyjaśnienia ucieczki znaków specjalnych ... dlatego ludzie przychodzą do stackoverflow, aby zacząć od ...:help magic
to coś, co wpisujesz w vimie. To nie jest argument wiersza poleceń dla vima.Odpowiedzi:
Tak samo jak w większości innych programów linuxowych zmieniasz znaczenie znaków, używając odwrotnego ukośnika:
:%s/<dog\/>/<cat\\>
Pamiętaj jednak, że zamiast tego możesz wybrać inny separator:
:%s@<doc/>@<cat\\>@
Dzięki temu nie musisz wpisywać wszystkich czasochłonnych, mylących odwrotnych ukośników we wzorach z mnóstwem ukośników.
Z dokumentacji :
źródło
s
jest traktowany jako separator. Nie mogę dowiedzieć się, gdzie znalazłem listę w dokumentacji, ale jestem prawie pewien, że przynajmniej/:;*%@#
są prawidłowe.%s:<dog/>:<cat>
Możesz zastąpić ograniczniki /, jeśli stają się irytujące dla niektórych wzorców.
źródło
:
separator. Nie wiedziałem, że możesz tego użyć. Zawsze używałem@
w czasach „ucieczki”Cytuj je odwrotnym ukośnikiem. Poza ukośnikiem często pomaga też użycie innego separatora.
:%s#<dog/>#<cat\\>#
lub jeśli musisz użyć ukośnika jako zastępczego separatora polecenia
:%s/<dog\/>/<cat\\>/
źródło
Składnia jest następująca:
:%s/<dog\/>/<cat\\>/g
źródło
Szukałem czegoś podobnego, aby wyszukać wartości rejestrów zawierające
/
znak (aby zarejestrować makro). Rozwiązaniem było wyszukanie przy użyciu?
tokena zamiast/
.źródło
?
wykona wyszukiwanie wstecz i nie jest tym samym.ukośnik odwrotny ukośnik odwrotny gwiazdka
/(<- the prompt)\/\*
więc po wpisaniu to wygląda
/\/\*
źródło