利用OmniCppComplete在vim中自动补全C++

  代码自动补全应该是作为程序员最常用的功能之一了。代码补全的实现依赖于 tag。tag 就是程序中的关键词,在 C++ 中主要包括:变量、函数名、类名等。代码自动补全实际上是 tag 的匹配(例如,程序员输入 cla 时,由于存在 class 这个 C++ 的 tag,就可以用 class匹配 cla)。 1 安装   在http://www.vim.org/scripts/script.php?script_id=1520下载 omnicppcomplete-0.41.zip 并解压到 ~/.vim 中   unzip omnicppcomplete-0.41.zip ~/.vim 2 建立tag   omnicppcomplete 是基于 ctags 数据库即 tags 文件实现的,因此首先需要安装 ctags,请参考 http://www.leexiang.com/make-vim-as-your-cpp-ide-using-cvim-plugin   或者运行命令:sudo apt-get install exuberant-ctags   mkdir ~/.vim/tags   cd ~/.vim/tags   ctags -R –c++-kinds=+p –fields=+iaS –extra=+q /usr/include/c++/4.1.2/ 3 配置   在 .vimrc 中添加:   set nocp   filetype plugin on   filetype indent on   set tags+=~/.vim/tags   au BufWritePost *.c,*.cpp,*.cc,*.h !ctags -R –c++-kinds=+p –fields=+iaS –extra=+q .   set completeopt=menu,menuone   let OmniCpp_MayCompleteDot = 1 " autocomplete with .   let OmniCpp_MayCompleteArrow = 1 " autocomplete with ->   let OmniCpp_MayCompleteScope = 1 " autocomplete with ::   let OmniCpp_SelectFirstItem = 2 " select first item (but don't insert)   let OmniCpp_NamespaceSearch = 2 " search namespaces in this and included files   let OmniCpp_ShowPrototypeInAbbr = 1 " show function prototype in popup window   let OmniCpp_GlobalScopeSearch=1   let OmniCpp_DisplayMode=1   let OmniCpp_DefaultNamespaces=["std"]

发表评论

电子邮件地址不会被公开。 必填项已用*标注