基于ominicomplete和ctags的自动补全

目录

一. Ctags

1. 安装ctags

2. 添加环境变量

二. 准备索引文件

1. 以c++标准库为例

2. 其余库(以OPENMPI为例)

三. 配置Omnicomplete

四. 非常简单的改色美化

主要参考链接:


一. 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/

https://www.cnblogs.com/my_life/articles/4051961.html

https://blog.csdn.net/qq_36536126/article/details/106338335?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-106338335-blog-84641282.235^v38^pc_relevant_anti_vip&spm=1001.2101.3001.4242.1&utm_relevant_index=1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值