如何在 Vim 上使用 C-] 和 taglist

Posted

技术标签:

【中文标题】如何在 Vim 上使用 C-] 和 taglist【英文标题】:how to be able to use C-] with taglist on Vim 【发布时间】:2012-08-16 09:22:45 【问题描述】:

我在 windows 上有 gVim 7.3 和 taglist 和 ctags 5.8。 Taglist 运行良好(无需自己生成标签文件),我可以在标签窗口中看到当前缓冲区的标签并转到其中任何一个等。

但我知道我应该可以在编辑器中使用C-] 也可以转到光标下的声明,这不起作用,它一直在说

E433: No tags file
E426: tag not found: myMethod     **strong text**

我应该怎么做才能使用C-]

【问题讨论】:

您可能想要使用插件索引器:goo.gl/kixRn。它为整个项目提供了无痛的自动标签生成,并使标签保持最新。查看我的另一个答案以了解一些详细信息:goo.gl/pG9OP 感谢 Dmitry,我一定会尝试的! 【参考方案1】:

TagList 是一个完全独立于 Vim 的<C-]> 和相关命令的第三方插件。因为它不生成tags 文件,甚至不使用tags 文件,所以它在自己的气泡中运行。

<C-]> 是一个本机 Vim 命令,它使用 tags 文件,您需要使用类似 :!ctags -R . 的命令生成该文件,并且您必须确保 Vim 知道该文件。

【讨论】:

明白,谢谢。所以现在的问题是,有没有办法调整 taglist 以使用 C-]? TagList 提供文件中存在的符号列表(使用ctags 生成),您可以使用<CR> 或鼠标单击在代码中导航。 <C-]> 与 TagList 插件完全无关,用于跳转到光标下符号的定义处。在 TagList 窗口中使用 <C-]> 没有意义,因为没有代码,因此没有符号,也没有理由在那里使用 ctags<C-]> 用 TagList 扩展标准 vims 标签?所以我可以在窗口中通过<cr><c-]> 进行导航,同时光标在功能上? @FelikZ,如果您同时运行标签文件 TagList,那么您可以 两者都做。向 TagList 的作者询问该功能。【参考方案2】:

你的错误信息意味着你需要告诉 VIM 你的标签文件在哪里。 试试

set tags="your file name"

您可以指定多个文件名,使用逗号作为分隔符

顺便说一句,C-] 的另一种替代方法是 g-]。它不会立即跳转,而是显示不同匹配项的列表。

【讨论】:

但我认为 taglist 插件不需要创建标签文件...它是动态创建的,我可以很好地导航到 taglist 窗口中的定义。 对不起。我太快了。我不使用那个插件,但我检查了文档,它有一个常见问题解答部分,其中包含一些故障排除。

以上是关于如何在 Vim 上使用 C-] 和 taglist的主要内容,如果未能解决你的问题,请参考以下文章

如何在 vim 的 Taglist 窗口中显示变量

Vim ctags:我们可以在不关闭 taglist 窗口的情况下在 taglist 窗口和源代码窗口之间切换焦点吗?

VHDL标签在使用ctags + taglist的vim中效率不高

Vim Taglist 标签上的黄色高亮显示

vim的配置——TagList

打开时 VIM 和 taglist 坚持文件