I want to try vim (I use linux) in development, but there are many plugins with a lot of documentation, so it’s hard for me to find the plugins I want.
I am going to use: C ++, Qt, C. So here is what I need from the plugins:
1) Code completion:
1.1) Fill in everythingand smart(including nested templates and include files) from the standard library, side libraries, my sources. (a popup window with possible additions should show the function arguments and the result, so I can see overloaded functions). I'm not worried about how this should be organized, but I need to tell you which libraries I want and where all the project files are located.
1.2) The appendix mustshows the help information (function template) until I finish it. I will try to explain this:
foo.bar(a.firstArg(p1, p2), b.secondArg(p3, p4, p5))
when I typed foo.bar(I still want to see help information about foo.bar
functions and arguments. Then, when I type a.fir, I want to select, for example, taband fill in a.firstArg(, and new information about the function a.firstArgand arguments should be displayed until I write a.firstArg(p1, p2). Of course, when I write p1, he must complete it, and then after I write ,, information about a.firstArgwill be shown again. So I finish this nested statement, and then when I write ,, a popup with arguments is foo.barshown again. And so on, until I finish the statement.
, . , , .
1.3)
.
2) Navigation ( ,
, , , ):
2.1) .
2.2) . ( ).
2.3) foo.h foo.cpp(foo.c)
2.4) . ( , , , , cpp, (, )).
3) :
3.1) foo.h foo.c(pp) _FOO_H_ include guard #include "foo.h" foo.c(pp)
3.2) foo.h foo.c(pp). , , . , foo.cpp , foo.cpp.
3.3) ,
, , pimpl . ( ). :
: :pimpl Test, foo.h :
class Test{
public:
private:
class Impl_;
Impl_ *m_i;
};
class Test::Impl_{
public:
private:
}
.
YouCompleteMe, , 1.2). , ycm libclang.so, clang. , template not found(^N^P^U). , . , clang_complete, . , , , , vim .
, - , ...