2010-01-19 73 views
1

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

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

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

那么,有没有什么好的vim实践来解决问题,因为我momentions?

回答

2

使用

:tnext 
:tprevious 

:tn 
:tp 

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

映射这些命令是处理该问题的好方法。

你也可以试试0scan插件。它可以帮助选择想要的地方以更方便的方式跳跃。将光标置于符号上并按0u

1

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