#search #vim #hotkeys
#Поиск #vim #горячие клавиши
Вопрос:
При использовании опции инкрементного поиска VIM я обычно выполняю поиск и после того, как я добрался до первого результата (он будет выделен) Я использую /
клавишу для перехода к следующему результату.
Но:
- Для этого мне нужно «отменить» мой поиск и вернуться в обычный режим, чтобы перейти к следующему результату.
- Нажатие
/
заставляет VIM перейти к следующему результату, но он не выделит его.
Мне интересно, есть ли более эффективный способ переходить между результатами с помощью инкрементного поиска и выделять их.
Ответ №1:
Обычный ключ для перехода к следующему результату поиска — ‘n’.
Я не совсем уверен, что вы имеете в виду, говоря о выделении — все результаты поиска должны быть выделены, если установлен параметр hlsearch, и для меня не имеет значения, перейду ли я к следующему результату с помощью ‘n’ или с помощью ‘/’.
Комментарии:
1. Мэтью, спасибо. Тем не менее, я выполняю инкрементный поиск, набираю (он переходит и подсвечивается), затем нажимаю ENTER, затем использую ‘n’, и курсор переходит к следующему результату. Но он не выделен. Как вы думаете, это должно действовать по-другому?
2. Мой просто сразу выделяет их все — если в буфере одновременно отображается несколько результатов поиска, я вижу, что у всех них желтый фон. Это конфигурация по умолчанию в моей системе, и IIRC управляется настройкой ‘hlsearch’.
3. И ‘N’ для поиска в обратном направлении.
4. @MatthewWalton есть идеи, как я могу перейти к фиксированному количеству результатов поиска. Я имею в виду, например, переход к 10-й соответствующей строке
5.@GPcyborg Попробуйте
[number]n
? Это должно выполнятьсяn
[number]
раз, т. е. продвигатьn
результаты.
Ответ №2:
С помощью Ctrl-t
и Ctrl-g
вы можете перемещаться между совпадениями, не выходя из режима поиска
Комментарии:
1. Это то, что я искал. Я хотел, чтобы было выделено текущее совпадение.
2. Для меня это ответ на вопрос
Ответ №3:
Если вы хотите выделить все поисковые запросы, вам следует установить hlsearch
not incsearch
.
Комментарии:
1. В этом и заключалась проблема. Спасибо.
2. @zoltanctoth: вместо этого вам действительно следует принять другой ответ, потому что он был первым и сказал фактически то же самое.
3. Вы правы. Я пропустил часть hlsearch в ответе @ matthew. Спасибо, что заметили.