VIM, инкрементный поиск: как я могу перейти к следующему результату и выделить его?

#search #vim #hotkeys

#Поиск #vim #горячие клавиши

Вопрос:

При использовании опции инкрементного поиска VIM я обычно выполняю поиск и после того, как я добрался до первого результата (он будет выделен) Я использую / клавишу для перехода к следующему результату.

Но:

  1. Для этого мне нужно «отменить» мой поиск и вернуться в обычный режим, чтобы перейти к следующему результату.
  2. Нажатие / заставляет 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. Спасибо, что заметили.