目录
一. Ctags
1. 安装ctags
从官网下载ctags:Exuberant Ctags
tar zxf ctags-5.8.tar.gz
cd ctags-5.8
./configure --prefix=$HOME/<ctags installation path>
make && make install
2. 添加环境变量
vim $HOME/.bashrc (or whichever shell you're using)
将这一行加入.vimrc
export PATH="$HOME/<ctags installation path>/bin:$PATH"
之后重启terminal或者运行
source ~/.bashrc
这一步之后可以尝试 ctags --version来检查是否成功安装并添加环境变量
二. 准备索引文件
1. 以c++标准库为例
可以选择自行寻找c++头文件生成tags,也可以直接下载专门为ctags修改过的libstdc++头文件
解压后进入文件夹运行下列命令
ctags -R --c++-kinds=+l+x+p --fields=+iaSl --extra=+q --language-force=c++ -f stdcpp.tags .
可以看见生成了名为stdcpp.tags的文件,之后会作为Omnicomplete的索引文件
具体参数的含义可以看这篇
2. 其余库(以OPENMPI为例)
cd $HOME/<path for mpi>/include #header files for openmpi
ctags -R --c++-kinds=+l+x+p --fields=+iaSl --extra=+q --language-force=c++ -f openmpi.tags .
生成openmpi.tags文件 (tags文件可以随意命名,甚至可以不需要添加后缀)
三. 配置Omnicomplete
关于该插件的安装不多赘述,直接去官网下载压缩文件后解压到~/.vim文件夹即可,他会自动安装一系列文件。
要确保在.vimrc中添加这两行
set nocp
filetype plugin on
下一步需要让vim识别tags文件根据这个帖子,只需在.vimrc添加
" configure tags - add additional tags here or comment out not-used ones
set tags+=~<stdcpp.tags> "上一步生成的c++标准库tags文件
set tags+=~<openmpi.tags> "上一步生成的openmpi tags文件
" 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"]
" automatically open and close the popup menu / preview window
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif
set completeopt=menuone,menu,longest,preview
保存文件后,在需要补全的位置按下Ctrl-n 或Ctrl-o,即可弹出相关信息
四. 非常简单的改色美化
如果不喜欢系统默认配色,可以按照这篇帖子在vimrc文件中添加下列配置
colors ron
hi Pmenu ctermfg=7 ctermbg=236
hi PmenuSel ctermfg=white ctermbg=32
hi CocFloating ctermfg=black ctermbg=240
最后的结果是这样的
主要参考链接:
参考链接:
http://www.jiangguo.net/c/vry/13r.html
https://blog.easwy.com/archives/advanced-vim-skills-omin-complete/