vim 自动集成了一些补全。最常用的是^+N,局部变量的补全。
要补全类的成员,需要额外的插件,方法如下:
1 首先安装ctags。
并且创建tags的时候,需要参数:
--c++-kinds=+p : Adds prototypes in the database for C/C++ files.
--fields=+iaS : Adds inheritance (i), access (a) and function signatures (S) information.
--extra=+q : Adds context to the tag name.
为了操作方便,可以在vim配置文件中添加以下映射:
map <C-F12> :!ctags -R -I --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
有了tags的信息,才能找到类成员。
注意:我用上述命令生成tag后,再^+]去找函数定义的时候,会发现tag列出的东西变多了。上述的 function signatures (S) information.
是可以不需要的。
2 下载omnicppcomplete插件
http://www.vim.org/scripts/script.php?script_id=1520
上述两步完成之后,重启vim,当定义一个类的对象时,
class A;
A. 的时候就会自动补全其成员。或者通过^x+^o触发。
let OmniCpp_ShowPrototypeInAbbr = 1
let OmniCpp_DefaultNamespaces = [ "std" ]