vim 插件 -- omnicppcomplete

omnicppcomplete 插件是基于ctags来实现补全的。所以,要先安装好ctags才可以使用。

下载

https://www.vim.org/scripts/script.php?script_id=1520

安装

cp omnicppcomplete-0.41.zip ~/.vim

cd ~/.vim

unzip omnicppcomplete-0.41.zip

前置配置:

vim ~/.vimrc

set nocp
filetype plugin on

前置条件:

ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ./

--c++-kinds=+p  : 为C++文件增加函数原型的标签
--fields=+iaS   : 在标签文件中加入继承信息(i)、类成员的访问控制信息(a)、以及函数的指纹(S)
--extra=+q      : 为标签增加类修饰符。注意,如果没有此选项,将不能对类成员补全 

使用&配置

使用

1、输入几个字符后,先按 ctrl + x ,再按 ctrl + o

2、ctrl + p 和 ctrl + n 实现上下选择。当然也可以用上下键来实现

3、ctrl + y 表示选择当前补全, ctrl + e 表示停止补全

配置

"omnicppcomplete config
"去掉预览窗口的显示
"set completeopt=longest,menu
"如果下拉菜单弹出,回车映射为接受当前所选项目,否则,仍映射为回车
inoremap <expr> <CR> pumvisible()?"<C-Y>":"<CR>"
"如果下拉菜单弹出,CTRL-J映射为在下拉菜单中向下翻页。否则映射为CTRL-X CTRL-O
inoremap <expr> <C-J> pumvisible()?"<PageDown><C-N><C-P>":"<C-X><C-O>"
"如果下拉菜单弹出,CTRL-K映射为在下拉菜单中向上翻页,否则仍映射为CTRL-K
inoremap <expr> <C-K> pumvisible()?"<PageUp><C-P><C-N>":"<C-K>"
"如果下拉菜单弹出,CTRL-U映射为CTRL-E,即停止补全,否则,仍映射为CTRL-U
inoremap <expr> <C-U> pumvisible()?"<C-E>":"<C-U>"

其他命令:

整行补全                        CTRL-X CTRL-L
根据当前文件里关键字补全        CTRL-X CTRL-N
根据字典补全                    CTRL-X CTRL-K
根据同义词字典补全              CTRL-X CTRL-T
根据头文件内关键字补全          CTRL-X CTRL-I
根据标签补全                    CTRL-X CTRL-]
补全文件名                      CTRL-X CTRL-F
补全宏定义                      CTRL-X CTRL-D
补全vim命令                     CTRL-X CTRL-V
用户自定义补全方式              CTRL-X CTRL-U
拼写建议                        CTRL-X CTRL-S

参考:

https://blog.easwy.com/archives/advanced-vim-skills-auto-complete/

原文地址:https://www.cnblogs.com/AndyStudy/p/8696377.html