预: 我已经在VIM工作了一年了。很多很棒的东西:组合,脚本。每当我在不同的编辑器中编辑某些内容时,如果没有VIM的导航,我会感到迟钝/不舒服。
问题: 最让我困扰的是使用现有工具(ctags,cscope)的源代码导航。通常,ctags找不到变量的声明,cscope而不是ctags查找具有相同变量名的所有定义。与调用树导航相同的疯狂,查找前向声明以及单个类定义等。 与Eclipse中的MS Intellisense,Visual Assist甚至源代码导航相比,Exuberant Tags / cscope似乎已被弃用至少10年。
我知道有像ViEMU这样的工具,但它们并没有真正解决问题,因为你失去了很多VIM的功能。
问题: 我想知道是否有一个工具可以更好地解析源代码,或者有一些方法可以将源解析引擎(如Intellisense)集成到VIM中? 也许有商业解决方案,或者有人准备实施一个?
与Visual Assist相比,VIM的所有好处似乎比导航到类定义时浪费的时间更少,而Visual Assist则由单个Alt-G快捷方式完成。
答案 0 :(得分:7)
您可以尝试eclim,这是一种在Vim中使用某些Eclipse功能的方法。
对于C / C ++,它提供:
:CSearchContext
):CCallHierarchy
):Validate
)这不是很好,但在某些情况下它可以提供帮助。
关于自动代码完成,我主要使用OmniCppComplete,它使用标签来提供上下文感知代码完成。这并不坏。
根据Luc Hermitte的建议,你也可以使用clang_complete,它不需要ctags,但需要安装clang。
答案 1 :(得分:1)
不幸的是,这是一个真正的问题。 ctags或cscope很难与Visual Studio代码浏览竞争 - 它实际上使用C ++编译器前端来解析编辑器的代码。