Ответ 1
:tn[ext]
переходит к следующему тегу, :tp[revious]
переходит к предыдущему. :ts[elect]
дает вам список на выбор.
:help tag-matchlist
для более интересных и захватывающих вещей, чтобы попробовать!
Я использую Ctrl - ] в Vim для навигации по Ctags. Как перейти к альтернативному файлу, если есть несколько совпадений?
Ex. something.publish
в кодовой базе, содержащей несколько вхождений publish
:
class Foo
def publish
end
end
class Bar
def publish
end
end
:tn[ext]
переходит к следующему тегу, :tp[revious]
переходит к предыдущему. :ts[elect]
дает вам список на выбор.
:help tag-matchlist
для более интересных и захватывающих вещей, чтобы попробовать!
Используйте g]
вместо C-]
, чтобы получить список всех совпадений.
Возможно, вы захотите прочитать :help g]
Добавление ответа, который я в конечном счете искал, если он помогает другим:
g<C-]>
будет переходить к тегу, если имеется только одно совпадение, и будет представлен список, если имеется несколько совпадений.
Я добавил это сопоставление в мой .vimrc, чтобы сделать то, что я хочу по умолчанию:
nnoremap <C-]> g<C-]>
ltag
ltag the_tag_name
lopen
открывает окно местоположения с совпадением тегов.
Это особенно удобно при поиске регулярных выражений:
ltag /tag_na
lopen
в котором будут перечислены все теги, содержащие строку tag_na
(таким образом, включая the_tag_name
).
Затем вы можете продолжить поиск в списке местоположений, прежде чем нажать Enter, чтобы перейти к тегу.
Чтобы использовать его для слова под курсором, вы можете определить карту:
nnoremap <leader>l exec("ltag ".expand("<cword>"))<CR>
Затем, если вы маньяк табуляции, такой как я:
command! -nargs=1 Ltag silent ltag <args> | execute "normal \<C-o>" | tab lopen
откроет новую вкладку со списком местоположений и всеми совпадениями, вместо прямого перехода на вкладку:
:Ltag /my_struct