我已经使用omniCppComplete + ctags了一段时间,并希望在代码完成方面做进一步的改进。
根据此处[1]中的建议,gccsense和clang_complete似乎是替代方案。但是,我不确定哪个更好。对他们的表现有任何想法吗?
谢谢!
更新:在尝试clang_complete之后,我发现完成速度极其不可接受。
然后,我使用libclang.dylib进行了尝试,它可以加快很多速度,但仍然让人感觉有些滞后。
我认为我现在应该坚持使用ctags。
最佳答案
您可能应该使用clang_complete而不是gccsense。
这里的重点是两者的体系结构。两种解决方案的思想非常相似:如果没有内部编译器(gcc)信息(抽象语法树)的访问,就无法获得正常的C ++完成,而gcc却没有为此提供足够的接口。尽管访问此信息的实现部分在这里完全不同:gccsense是一种“ hack”-它是gcc的自定义版本,能够存储必要的信息以进一步将其提供给插件,而clang_complete则通过使用替代方式编译器:clang,其主要创建目标之一就是使AST易于通过外部工具访问。
因此,在使用gccsense的情况下,您需要使用一种自定义的gcc编译器来编译代码,该编译器已经有些过时了(gccsense使用的是gcc 4.4),并且将不断需要功能上开发人员的支持。相反,clang_complete并不太依赖clang编译器,而是将其用作外部工具。
至于性能:再次将clang设计为比gcc更快。在Windows上,Clang_complete的速度可能比在MacOS / Linux上慢一些,但是当时甚至无法为Windows编译gccsense。
关于vim - gccsense vs. clang_complete,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5454803/