一些编辑器(例如Windows上的Visual Studio)会执行C ++自动补全功能,从而可以理解C ++。例如,给定:
#include <vector>
int main(void) {
std::vector<int> v;
v.i
在Visual Studio中,自动补全知道std::vector<int>
以i开头的唯一方法是insert
。
是否可以在vim中获得这种自动完成功能?
一些编辑器(例如Windows上的Visual Studio)会执行C ++自动补全功能,从而可以理解C ++。例如,给定:
#include <vector>
int main(void) {
std::vector<int> v;
v.i
在Visual Studio中,自动补全知道std::vector<int>
以i开头的唯一方法是insert
。
是否可以在vim中获得这种自动完成功能?
Answers:
我真的很喜欢clang_complete。它确实需要clang,并且您需要告诉它libclang在系统中的位置。在那之后,它运行得非常好。
人们可能会建议您使用YouCompleteMe,但老实说,该插件的功能实在是太肿了,并且安装步骤太多。我也多次使用过segfault Vim。我对clang_complete很满意。
这是我输入时得到的v.
:
return 0
在该弹出菜单的下面。
YouCompleteMe安装起来并不难,并且对我来说非常稳定,几年前我已经从clang_complete迁移到YouCompleteMe。我同意的一件事是,它确实拥有庞大的提交历史,许多内部依赖项以及对许多您可能不关心的语言的支持,但最终仍会克隆其关联的子模块,从而肿了。那个,那仍然是YouComplemeMe的问题。
我叉子工作具有特殊目的,以更好地支持C ++,你可以检查这个GIF图片,展示其关闭:
https://s3.amazonaws.com/f.cl.ly/items/1e2F0A123h331c1G0L0R/SadBart.gif
它利用了Clang能够提供的新参数信息,您可以从我的这篇文章中了解更多有关此信息:http : //nosubstance.me/articles/2015-01-29-better-completion-for-cpp/。