Wizualnie wybierz bieżący wynik wyszukiwania

9

Mam hlsearchustawione, ale czasami kołysze mnie do myślenia t kapelusz mam termin wyszukiwania wizualnie zaznaczone, a może po prostu wciskamy cgo zmienić.

Wyszukiwany termin może nie być łatwą liczbą liter, słów, a nawet wierszy - a zresztą nie chcę liczyć.

Czy istnieje sposób vh(lub ch), powiedzmy, gdzie hdziała, dopóki nie zakończy się bieżące podświetlanie?

OJFord
źródło

Odpowiedzi:

14

Możesz użyć do tego gnruchu, wybiera on następny wyszukiwany element.

Możesz go używać w następujący sposób:

/foo<CR>
gn            -> select the next "foo"
sbar<Esc>     -> (optional) substitute it with "bar"

Premia: Aby .powtórzyć wyszukiwanie i zmianę, użyj polecenia a, caby zrobić wszystko za pomocą jednego polecenia:

/foo<CR>
cgnbar<Esc>
...           -> find and change the 3 next foo
nobe4
źródło
1
Fantastyczny! Dzięki. (Każdy, kto tak jak ja, tęskni za tym, dlaczego .powtórzy całą akcję i nie może sprawić, by działała - przeczytaj uważniej - cnajpierw! Nie mógłbym prosić o lepsze.)
OJFord
3
Pamiętaj, że możesz także użyć, gNaby wizualnie wybrać poprzednie dopasowanie.
statox
Jaka jest różnica między tym a naciśnięciem przycisku, naby przejść do następnego wyniku wyszukiwania?
user1717828,
zmienia również, więc zamiast powtarzać n.(przy kolejnym wystąpieniu, powtórz modyfikację), możesz po prostu nacisnąć .(powtórz modyfikację, czyli „zmień przy następnym wystąpieniu”)
nobe4 6.04.16
Rzeczywiście, po .wywołaniu gnoryginał foozniknął, więc Vim szuka następnego foo. Tak gnsamo jak nto, co by zrobił (i więcej). Ale, podobnie jak w przypadku n, zauważ, że działa to dobrze tylko wtedy, gdy barnie zawiera foo!
joeytwiddle