我在Vim中使用 Ctrl - ] 来使用Ctags进行导航。 如果有多个匹配项,如何导航到备用文件?
实施例。 something.publish
代码库中包含多次出现的publish
:
class Foo
def publish
end
end
class Bar
def publish
end
end
答案 0 :(得分:102)
使用g]
代替C-]
获取所有匹配的列表。
您可能需要阅读:help g]
答案 1 :(得分:69)
:tn[ext]
转到下一个标记,:tp[revious]
转到上一个标记。 :ts[elect]
为您提供了一个可供选择的列表。
:help tag-matchlist
可以尝试更多有趣和令人兴奋的事情!
答案 2 :(得分:14)
添加我最终寻找的答案,以防其他人:
如果只有一个匹配, g<C-]>
将跳转到标记,如果有多个匹配,则会显示一个列表。
我已将此映射添加到我的.vimrc中,以使其默认执行我想要的操作:
nnoremap <C-]> g<C-]>
答案 3 :(得分:1)
<强> document.write
强>
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