Визуальный выбор текущего результата поиска


9

Я hlsearchустановил, но иногда это заставляет меня задуматься, что у меня визуально выбран поисковый термин, и я могу просто нажать, cчтобы изменить его.

Поисковый термин может быть нелегким количеством букв, слов и даже строк - и в любом случае я не хочу считать.

Есть ли способ vh(или ch), скажем, куда hбежит, пока не остановится текущая подсветка?

Ответы:


14

Вы можете использовать gnдвижение для этого, он выбирает следующий искомый элемент.

Вы можете использовать это так:

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

Бонус: чтобы .повторить поиск и изменение, используйте a, cчтобы сделать все одной командой:

/foo<CR>
cgnbar<Esc>
...           -> find and change the 3 next foo

1
Фантастический! Спасибо. (Любой, кто, как и я, скучает, почему .повторяет все действие, и не может заставить его работать - читайте внимательнее - cсначала! Не могу просить лучшего.)
OJFord

3
Обратите внимание, что вы также можете использовать gNдля визуального выбора предыдущего матча.
statox

В чем разница между этим и простым нажатием, nчтобы перейти к следующему результату поиска?
user1717828

он также вносит изменения, поэтому вместо повторения n.(в следующем случае повторите модификацию) вы можете просто нажать .(повторить модификацию, то есть «изменить следующее вхождение»)
nobe4

Действительно, при .вызове gnоригинал fooисчезал, поэтому Vim ищет следующий foo. Так gnчто делает то, nчто сделал бы в любом случае (и больше). Но, как и в случае с n, обратите внимание, что это работает только тогда, когда barне содержит foo!
Joeytwiddle
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.