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/

vim 插件 -- omnicppcomplete的更多相关文章

  1. 常用vim插件的安装、使用和管理

      1.Ctags Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或者其他工具用来快速查找定位源代码中的符号,入变量名,函数名等.比如,tags文件就是Taglist和 ...

  2. VIM插件攻略

    工欲善其事,必先利其器.一个强大的开发环境可以大大提高工作效率.好吧,我知道这是废话...不过,我想一定有很多跟我一样打算进入Linux平台开发的新手,一开始都为找不到一个像Windows下的VS那样 ...

  3. vim插件和配置

    vim插件和配置 插件 pathogen 可以方便地管理vim插件 在没有pathogen的情况下,vim插件的文件全部都放在.vim目录,卸载插件很麻烦,pathogen可以将不同的插件放在一个单独 ...

  4. 【转载】跟我一起学习VIM - vim插件

    目录 写在前面:Life Changing Editor 什么是VIM 为什么选VIM 为什么选其它 为什么犹豫选择它们 VIM >= SUM(现代编辑器) 如何学习VIM 一秒钟变记事本 VI ...

  5. 跟我一起学习VIM - vim插件合集

    2016-06-14 15:04 13333人阅读 评论(0) 收藏 举报 分类: Linux(104)  目录(?)[+]  前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教 ...

  6. (转)自动安装VIM插件

    转自: http://xwz.me/wiki/doku.php?id=vim:plugins 我的插件列表 把下面GetLatestVimScripts.dat放进~/.vim/GetLatest/目 ...

  7. Linux c++ vim环境搭建系列(4)——vim插件安装配置使用

    4. 插件 主要是c++相关的. ~/.vimrc文件在GitHub上有:https://github.com/whuwzp/vim_config 以下内容参考: https://github.com ...

  8. [Tools] Vim插件管理

    我们在使用插件的时候,都不希望插件安装的很杂乱,它不是一个看不见的黑盒,也为了下次方便在其它地方安装. 由于要方便插件管理,于是有了 Vundle,以下做些介绍: 1. 一个插件管理器, 自己本身也是 ...

  9. Vim插件管理——Vundle

    Vim插件管理--Vundle 都说Vim时程序员写给自己的编辑器,其中的情结可想而知.身为一只程序狗CodingDoge,今天就让我带各位学习Vim的使用. vim因为其庞大而强劲的插件受到无比的推 ...

随机推荐

  1. ORACLE——NVL()、NVL2() 函数的用法

    NVL和NVL2两个函数虽然不经常用,但是偶尔也会用到,所以了解一下. 语法: --如果表达式1为空则显示表达式2的值,如果表达式1不为空,则显示表达式1的值 NVL(表达式1,表达式2); --如果 ...

  2. Linux下批量杀掉筛选进程

    在做项目的时候,由于情况要求,需要把服务器上符合某一条件的进程全部kill掉,但是又不能使用killAll直接杀掉某一进程名称包含的所有运行中的进程(即我们可能只需要杀掉某一类含有特定参数命令的进程) ...

  3. python 爬虫-1

    买了本书在自学,我也不知道自己能学到什么地步,反正不用这个找工作,纯属爱好,有可能之后就会放弃 233333333.... 先来一个特别简单点的:将百度搜索主页  扒下来,并保存到一个文件里面 fir ...

  4. C#构造函数、私有构造函数、静态构造函数与构造函数执行顺序

    默认构造函数,如果没有为类指定任何构造函数,编译器会自动为类创建一个无参构造函数,用以初始化类的字段:如果为类编写了构造函数,那么编译器就不会再自动生成无参构造函数了.ps.C#不允许用户为结构定义无 ...

  5. CentOS 7 配置Tomcat9连接MySQL

    配置Tomcat 首先安装Tomcat 安装Tomcat分为安装Tomcat和安装JDK两个步骤 JDK( Java Development Kit ) 是Sun Microsystems针对Java ...

  6. Vue系列之 => 路由的嵌套

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  7. Zookeeper应用之——选举(Election)

    请注意,此篇文章并不是介绍Zookeeper集群内部Leader的选举机制,而是应用程序使用Zookeeper作为选举. 使用Zookeeper进行选举,主要用到了Znode的两个性质: 临时节点(E ...

  8. html5 javascript 表单练习案例

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  9. WebForm内置对象:Session、Cookie,登录和状态保持

    1.Request -获取请求对象 string s =Request["key"]; 2.Response  -  响应请求对象 Response.Redirect(" ...

  10. vue用mand-mobile ui做交易所移动版实战示例

    vue用mand-mobile ui做交易所移动版实战示例 先展示几个界面: 目录结构: main.js // The Vue build version to load with the `impo ...