我尝试通过以下方式生成标签文件:
ctags -R * −−java−kinds=+mc
但是当有多个匹配项时,ctrl+] 总是跳转到另一个类中错误的方法定义。
我知道如果有多个选项,我可以使用 :tjump 来选择。但我希望有更好的解决方案(如果有的话)?
答案1
在这种情况下,我建议使用g CTRL-]
而不是CTRL-]
。例如:tjump
,这将列出所有可用的标签匹配并向您查询,而不是跳转到第一个。
要使其成为默认值,您可以使用此映射:
:nnoremap <C-]> g<C-]>
答案2
:tjump
ctags 和 vim 都无法猜测正确的标签是什么,并且除了或之外没有其他办法可以解决这个问题:tselect
。:tag
它有一个优先级机制,您可以在文档中阅读相关内容,但这仍然很愚蠢。
Cscope 稍微智能一些,但也不是那么智能。
在这种情况下,列出可能的目标供您选择是唯一明智和实用的方法。