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