vim的C++补全OmniComplete

我的系统是ubuntu11.10

OmniComplete是基于ctags的,所以要先安装ctags

ubuntu11.10上,ctags好像已经安装了,可以试试sudo apt-get install ctags,已经安装的话会提醒,没安装的话这样就可以安装了

http://www.vim.org/scripts/script.php?script_id=2358下载cpp_src.tar.bz2,解压,进入目录,运行下面这条命令

ctags -R --sort=1 --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f cpp

然后就会在这个目录下生成一个文件名为cpp的文件,这就是我们需要的

然后到http://www.vim.org/scripts/script.php?script_id=1520下载omnicppcomplete-0.41.zip

解压到~/.vim目录下(解压出3个文件夹after, autoload, doc)

然后用编辑器打开~/.vimrc,把下面内容粘进去(用文件名为cpp的文件的真实目录替换【目录】

" ctags 索引文件 (根据已经生成的索引文件添加即可, 这里我额外添加了 hge 和 curl 的索引文件) 
set tags+=【目录】/cpp 
let OmniCpp_NamespaceSearch = 1
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_ShowAccess = 1 
let OmniCpp_ShowPrototypeInAbbr = 1 " 显示函数参数列表 
let OmniCpp_MayCompleteDot = 1   " 输入 .  后自动补全
let OmniCpp_MayCompleteArrow = 1 " 输入 -> 后自动补全 
let OmniCpp_MayCompleteScope = 1 " 输入 :: 后自动补全 
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]
" 自动关闭补全窗口 
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif 
set completeopt=menuone,menu,longest

filetype plugin on "这个可能需要,反正我的.vimrc里有这个

这样应该就可以了

参考http://www.cnblogs.com/xkfz007/articles/2501888.html

http://blog.chinaunix.net/uid-20263484-id-110107.html

原文地址:https://www.cnblogs.com/fstang/p/2793884.html