Переход к функции в Vim

662
mrQWERTY

У меня есть ctags, и я переходил к функциям, помещая свой курсор в функцию и нажимая ctrl]. Однако иногда я нахожу это неудобным.

Например, если мой курсор не находится рядом с функцией, к которой я хочу перейти, это будет расстраивать.

Есть ли в ctags или vim команда для автоматического перехода к функции, введя ее имя и нажав кнопку? Было бы намного лучше, если бы оно было нечетким и предсказывало функцию для вас. Так, например, если я хочу перейти к вызываемой функции process_input(), я бы набрал эту функцию и нажал gили что-то еще.

0

2 ответа на вопрос

5
garyjohn

Команда :tag <identifier>эквивалентна тому, Ctrl-]когда курсор находится над <идентификатором>. Увидеть

:help CTRL-] 

Таким образом, вы можете напечатать

:tag process_input 

перейти к тегу этой функции. Кроме того, :tagкоманда использует завершение табуляции, поэтому вы можете вместо этого набрать

:tag pro<Tab> 

и Vim завершит как можно больше этого имени. Нажмите <Tab> еще раз, и Vim будет циклически проходить матчи. Если вы предпочитаете видеть список возможных совпадений, вы можете установить опцию 'wildmode` на что-то другое, например,

:set wildmode=longest,list 

Увидеть

:help 'wildmode' 
Кроме того, `: tag / inp`использует завершение регулярного выражения вместо завершения целого слова по умолчанию, когда вы помните только часть имени или когда слишком много символов имеют одинаковый префикс. romainl 9 лет назад 0
1
Heptite

Вы можете перейти к определенному известному тегу с помощью :tagкоманды. Например:

:tag process_input