При нажатии [I VIM показывает список строк, которые соответствуют слову под курсором. Например, если курсор находится на слове « Table и нажимается [I , отображается следующее:

  1:   49 class Table(object):
  2:  220         new_table = Table(t, records)
  3:  241         tables.append(Table(row[0], row[1],))
  4:  392         tables.append(Table(t, records))
Press ENTER or type command to continue

Как можно легко выбрать опцию из списка, то есть перейти к одной из строк? Я пробовал Tab , Ctrl-N , Ctrl-P , j , клавиши со стрелками и ввод 1 , 2 и так далее. Ни одна из этих работ. Я знаю, что мог бы просто набрать номер строки и затем gg чтобы перейти к рассматриваемой строке, но я хотел бы знать, есть ли у VIM еще одна хитрость в рукаве.

2 ответа2

2

Следующее отображение vim должно делать то, что вы хотите (отображение основано на моем слове памяти для этого отображения: fast-search):

nmap <leader>fs [I:let nr = input("Which one: ")<Bar>exe "normal " . nr ."[\t"<CR>

Приведенная выше команда сначала выводит список строк, соответствующих слову под курсором в начале файла, а затем запрашивает, к какому соответствию вы хотите перейти, и, наконец, переходит к этому совпадению.

Если вы предпочитаете перечислять строки, начинающиеся со слова под курсором, в отличие от начала файла, вы можете использовать:

nmap <leader>fs ]I:let nr = input("Which one: ")<Bar>exe "normal " . nr ."]\t"<CR>

Обратите внимание, что квадратные скобки инвертированы в более поздней команде.

1

Этот список не является интерактивным, вы должны сделать следующее, чтобы перейти ко второму матчу:

:220<CR>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .