一、安装ctags:从官网下载 Ctags 可执行文件,网站是
http://ctags.sourceforge.net/,安装命令是linux中常见的./configure;make;make install
二、准备索引:从网上下载专为 Ctags 修改过的
libstdc++ 头文件或
cpp_src.rar(这个文件下载后,扩展名改为tar.gz2),解压缩(tar -xjf);
切换到解压缩后的路径,执行ctags -R --sort=1 --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f cpp .,产生索引文件 cpp
三、下载
OmniCppComplete,修改vim的配置文件vimrc ,在文件末尾加入
" ctags 索引文件 (根据已经生成的索引文件添加即可, 这里额外添加了 hge 和 curl 的索引文件)
set tags+=/ctags/tags/cpp-------这里是cpp文件绝对路径
set tags+=/ctags/tags/hge-------hge绝对路径(这个索引文件用户可以自己生成,也是用上面的命令)
set tags+=/ctags/tags/curl-------curl绝对路径
" OmniCppComplete
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
OmniComplete解压缩后,
将autoload和doc下的文件拷贝到vim的/usr/share/vim/vim72/atuoload路径下;将after文件夹拷贝到/usr/share/vim/vimfiles/下;需确认在 vimrc 中开启了 filetype 选项,不然 OmniComplete 无法自动识别 C/C++ 文件类型进行补全。
这样,在插入模式编辑 C/C++ 源文件时按下 . 或 -> 或 ::,或者手动按下 Ctrl+X Ctrl+O 后就会弹出自动补全窗口,此时可以用 Ctrl+N 和 Ctrl+P 上下移动光标进行选择。
变自动补全窗口的配色可以在 vimrc 中加上:
highlight Pmenu guibg=darkgrey guifg=black
highlight PmenuSel guibg=lightgrey guifg=black
Pmenu
是所有项的配色,PmenuSel
是选中项的配色,guibg
和 guifg
分别对应背景色和前景色。
注意:一定要注意拷贝文件的路径