适用于VIM的C ++ Cross Ref与Source Insight类似

时间:2013-04-16 05:01:20

标签: vim source-insight

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

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

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

在Source Insight中,它明显地给了我阶级选择。

Vim是否有可用的Cross ref工具?

2 个答案:

答案 0 :(得分:2)

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

不能合理地期望它能像IDE一样理解你的代码。

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

考虑到所有这些,你会留下像ctags,cscope或GLOBAL这样的代码索引器。这些工具尽力为您提供准确的结果,但它们并不像IDE中使用的工具那样智能和具体。

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

答案 1 :(得分:0)

我自己没试过。但听起来像eclim是你正在寻找的。 http://eclim.org/

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