我想要一个类似于 Source Insight 的交叉引用导航。让我们举个简单的例子:
classA::MethodB()
{
...
m_variable = value;
}
在这个例子中,如果我使用 Ctags / Cscope,那么当我尝试查找 m_variable 时,它会显示所有可用的 m_variable。我需要遍历每一个,然后找到需要哪一个。
在 Source Insight 中,它显然给了我课堂上的乐趣。
Vim 有没有这样的交叉引用工具?
我想要一个类似于 Source Insight 的交叉引用导航。让我们举个简单的例子:
classA::MethodB()
{
...
m_variable = value;
}
在这个例子中,如果我使用 Ctags / Cscope,那么当我尝试查找 m_variable 时,它会显示所有可用的 m_variable。我需要遍历每一个,然后找到需要哪一个。
在 Source Insight 中,它显然给了我课堂上的乐趣。
Vim 有没有这样的交叉引用工具?
Vim 不是 IDE,它是一个文本编辑器。
您不能合理地期望它能够像 IDE 一样理解或深入理解您的代码。
IDE 通常会保留代码的动态内部表示,即使您有许多同名的方法或变量,它们也能够跟踪声明和使用情况。Vim 和大多数文本编辑器一样,靠自己无法做到这一点:它必须依赖外部工具来索引/导航代码。现在,由于架构限制,Vim 无法运行任何后台进程,这是将真正的“代码智能”添加到 Vim 的绝对先决条件。
考虑到这一切,您就剩下代码索引器,如 ctags、cscope 或 GLOBAL。这些工具尽最大努力为您提供准确的结果,但它们不像 IDE 中使用的工具那么聪明和具体。
作为补偿,Vim 有许多不同的命令,例如:tselect
或g]
打开一个可供选择的可能标签列表。阅读:h tags
,:h ctags
了解:h cscope
如何处理这些限制。
我自己没有试过这个。但听起来 eclim 就是你要找的东西。http://eclim.org/
它提供了可从 Vim 访问的 eclipse 功能,包括代码搜索和自动完成。