Wiem, że mogę użyć /wyrażenia regularnego, aby wyszukać coś. I mogę użyć ?do wyszukiwania wstecz. I mogę użyć ni Npowtórzyć wyszukiwanie do przodu i do tyłu.
Istnieją również dwa ładne skróty: *lub #będą wyszukiwać słowo pod kursorem (do przodu / do tyłu). To bardzo przydatne! (są też g*i g#warianty)
Ale ... Po wybraniu tekstu za pomocą trybu wizualnego ( v), jak mogę poprosić Vima o wyszukanie dokładnie tego tekstu? Szybkie spojrzenie na :help
nie ... huh ... nie pomogło mi.
*
i#
! Byłoby miło, jeśli pytanie będzie również wyjaśnić, cog*
ig#
zrobi;)Odpowiedzi:
Poniższa sekwencja zrobi to, co chcesz, biorąc pod uwagę już zaznaczony blok tekstu:
"
domyślnie przeciągnij zaznaczony tekst do rejestru)"
rejestru)(*) Tryb „bardzo bez magii” interpretuje następujący tekst jako zwykły tekst zamiast jako wyrażenie regularne. jednak pamiętać, że
\
i/
nadal są szczególne i będą musiały być obsługiwane w inny sposób. Jeśli tekst nie zawiera żadnych znaków uznanych za specjalne, możesz pominąć ten krok.Źródło: Vim Tips Wiki
źródło
Najpierw możesz podciągnąć podświetlony tekst. Następnie
/
Ctrlr
"
Co wklei to, co szarpałeś po /.
źródło
/\V<C-r>"
zamiast tego zrobić . Przygotowując się\V
do zapytania, mówisz vimowi, żeby używał „bardzo bez magii”. Odwrotne ukośniki mogą nadal powodować problemy. Zobacz:help \V
Ctrl+R
jaki sposób uzyskujesz dostęp do rejestru i*
jest to po prostu rejestr schowka systemowego. Na przykład możesz także:yaw
szarpnąć słowo do rejestru"
(rejestr domyślny), a następnie/<C-r>"
wyszukać ten ciąg./
przeprowadzać wyszukiwanie, użyj?
zamiast tego, ponieważ wyszukiwania wsteczne domyślnie usuwają ukośniki. Następnie możesz nacisnąć,N
aby kontynuować wyszukiwanie w kierunku do przodu.Nigdy nie czułem potrzeby takiej funkcji, ale biorąc pod uwagę, że możesz znaleźć taką potrzebę w Vimie, myślę, że powinno to pomóc:
Nie przetestowałem tego, ale patrząc na kod, wydaje się, że jest dokładnie tym, czego szukasz.
źródło
Metodę tworzenia tego zachowania można znaleźć tutaj na wiki wiki .
źródło
vnoremap // y/\V<C-r>=escape(@",'/\')<CR><CR>
To rozwiązanie zapewnia wizualnie wybrany kontekst wyszukiwania vim, nawet w przypadku znaków wielowierszowych i znaków ucieczki.
Dodaj następujący kod do siebie
.vimrc
i przeszukuj wizualnie wybraną treść według//
. Możesz również globalnie zastąpić wybraną treść przez/s
. Lub Lokalnie zamień//
najpierw wybrany kontekst , a następnie wizualnie wybierz region i:'<,'>s//{new_text}
.Powyższa konfiguracja dotyczy tylko wyszukiwania. Dla całej mojej konfiguracji vima, odwiedź .vimrc
źródło
W moich konfiguracjach na dwóch osobnych komputerach, jeśli zaznaczę tekst, a następnie kliknę
/
go, automatycznie wyszuka wybrany tekst.źródło