vim的多标签问题

时间:2010-01-19 08:49:24

标签: vim

我发现当给定符号存在多个标签时,Vim无法选择正确的标签。 我不知道这是不是真的,但至少我多次遇到过这个问题。

为了更清楚地说明问题,我们假设有两个类:两个不同的cpp文件中的A类和B类。它们都定义了一个名为AddContext的公共成员函数。然后在项目的源代码中的其他地方,让我们将其表示为位置x,A的实例称为其memeber函数AddContext。

你为项目生成标签并转到x并将光标移动到“AddContext”下,最后点击ctr-]。令你沮丧的是,vim跳转到B :: AddContext而不是A ::的定义和addContext。

有没有什么好的vim练习可以像我提到的那样解决问题呢?

2 个答案:

答案 0 :(得分:2)

使用

:tnext
:tprevious

:tn
:tp

这将有助于以手动方式解决您的问题。 Ctags和Vim不了解上下文。所以你必须自己决定。

映射这些命令是解决问题的好方法。

您还可以尝试使用0scan插件。它可以帮助选择所需的地方以更方便的方式跳跃。将光标放在符号上,然后按0u

答案 1 :(得分:1)

而不是仅仅按^]使用g^]。如果光标下有标识符的多个标记,则会显示一个菜单,以便您可以选择要跳转到的标记。如果你跳转到标签并且它不是正确的标签,你可以使用:tselect(你可以缩写为:ts)来显示你所遵循的最后一个标签的菜单。