3

我想要一个类似于 Source Insight 的交叉引用导航。让我们举个简单的例子:

classA::MethodB() 
{
   ...
   m_variable = value;
}

在这个例子中,如果我使用 Ctags / Cscope,那么当我尝试查找 m_variable 时,它​​会显示所有可用的 m_variable。我需要遍历每一个,然后找到需要哪一个。

在 Source Insight 中,它显然给了我课堂上的乐趣。

Vim 有没有这样的交叉引用工具?

4

2 回答 2

2

Vim 不是 IDE,它是一个文本编辑器。

不能合理地期望它能够像 IDE 一样理解或深入理解您的代码。

IDE 通常会保留代码的动态内部表示,即使您有许多同名的方法或变量,它们也能够跟踪声明和使用情况。Vim 和大多数文本编辑器一样,靠自己无法做到这一点:它必须依赖外部工具来索引/导航代码。现在,由于架构限制,Vim 无法运行任何后台进程,这是将真正的“代码智能”添加到 Vim 的绝对先决条件。

考虑到这一切,您就剩下代码索引器,如 ctags、cscope 或 GLOBAL。这些工具尽最大努力为您提供准确的结果,但它们不像 IDE 中使用的工具那么聪明和具体。

作为补偿,Vim 有许多不同的命令,例如:tselectg]打开一个可供选择的可能标签列表。阅读:h tags:h ctags了解:h cscope如何处理这些限制。

于 2013-04-16T07:05:23.507 回答
0

我自己没有试过这个。但听起来 eclim 就是你要找的东西。http://eclim.org/

它提供了可从 Vim 访问的 eclipse 功能,包括代码搜索和自动完成。

于 2013-06-06T13:21:12.823 回答