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


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.