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

9

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

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

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

OJFord
источник

Ответы:

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
nobe4
источник
1
Фантастический! Спасибо. (Любой, кто, как и я, скучает, почему .повторяет все действие, и не может заставить его работать - читайте внимательнее - cсначала! Не могу просить лучшего.)
OJFord
3
Обратите внимание, что вы также можете использовать gNдля визуального выбора предыдущего матча.
statox
В чем разница между этим и простым нажатием, nчтобы перейти к следующему результату поиска?
user1717828
он также вносит изменения, поэтому вместо повторения n.(в следующем случае повторите модификацию) вы можете просто нажать .(повторить модификацию, то есть «изменить следующее вхождение»)
nobe4
Действительно, при .вызове gnоригинал fooисчезал, поэтому Vim ищет следующий foo. Так gnчто делает то, nчто сделал бы в любом случае (и больше). Но, как и в случае с n, обратите внимание, что это работает только тогда, когда barне содержит foo!
Joeytwiddle