我正在使用Ctrl-]在 Vim 中使用 Ctags 进行导航。如果有多个匹配项,我如何导航到备用文件?
前任。something.publish
在包含多次出现的代码库中publish
:
class Foo
def publish
end
end
class Bar
def publish
end
end
我正在使用Ctrl-]在 Vim 中使用 Ctags 进行导航。如果有多个匹配项,我如何导航到备用文件?
前任。something.publish
在包含多次出现的代码库中publish
:
class Foo
def publish
end
end
class Bar
def publish
end
end
使用g]
而不是C-]
获取所有匹配项的列表。
您可能想阅读:help g]
:tn[ext]
转到下一个标签,:tp[revious]
转到上一个标签。 :ts[elect]
为您提供一个可供选择的列表。
:help tag-matchlist
尝试更多有趣和令人兴奋的事情!
添加我最终寻找的答案,以防它帮助其他人:
g<C-]>
如果只有一个匹配项,将跳转到标签,如果有多个匹配项,将显示一个列表。
我已将此映射添加到我的 .vimrc 以使其默认执行我想要的操作:
nnoremap <C-]> g<C-]>
ltag
ltag the_tag_name
lopen
打开标签匹配的位置窗口。
这对于正则表达式标签搜索特别强大:
ltag /tag_na
lopen
它将列出包含字符串的所有标签tag_na
(因此包括the_tag_name
)。
然后,您可以在位置列表中进一步搜索,然后按回车键跳转到标签。
要将其用于光标下的单词,您可能需要定义映射:
nnoremap <leader>l exec("ltag ".expand("<cword>"))<CR>
那么,如果你是像我一样的标签狂:
command! -nargs=1 Ltag silent ltag <args> | execute "normal \<C-o>" | tab lopen
将打开一个包含位置列表和所有匹配项的新选项卡,而不是直接跳转到该选项卡:
:Ltag /my_struct