将vim 改造成功能强大的IDE系列之三

『插件介绍』

onmicppcompete功能:

命名空间(namespace),类(class),结构(struct)和联合(union)补全

函数属性成员和返回值类型补全

"this"指针成员补全

C/C++类型转换(cast)对象补全

类型定义(typedef)和匿名类型(anonymous types)补全

按理说可以显示函数原型,但是我的不可以,不知道为什么?

有图有真相:

『下载和安装』

1)进入~/.vim目录,将安装版解压缩

2)进入~/.vim/doc目录,在Vim命令行下运行"helptags .”

3)在~/.vimrc中加入以下几行:

set nocp

filetype plugin on

4)启动Vim后使用以下命令为Vim添加omnicppcomplete帮助信息

:helptags ~/.vimrc/doc     5)使用ctags生成标签库

对于C++代码,需要在~/.ctags 中加入下面几个选项(去除中文):

--c++-kinds=+p : 为标签添加函数原型(prototype)信息

--fields=+iaS : 为标签添加继承信息(inheritance),访问控制(access)信息,函数特征(function Signature,如参数表或原型等)

--extra=+q : 为类成员标签添加类标识

至此,安装结束!

『基本功能使用方法』

在配置好Vim,并生成了ctags标签库前提条件下,Vim中在输入 “xxx." 或者 "xxx->" 时会弹出如下补全提示:

+-------------------------------------+

|method1(   f  +  MyNamespace::MyClass|

|_member1   m  +  MyNamespace::MyClass|

|_member2   m  #  MyNamespace::MyClass|

|_member3   m  -  MyNamespace::MyClass|

+-------------------------------------+

^       ^  ^          ^

(1)     (2)(3)        (4)

其中1为符号名称;2为符号类型;3为访问控制标识;4为符号定义所在域(scope)。

符号名称

1为omnicppcomplete所查找到的可选符号(symbol)名称,如以'('结尾,则为函数。

按理说可以显示函数的原型,但是我的不可以,不知道为什么?

符号类型

符号的类型,可能的值为

c : 类(class)

d : 宏(macro definition)

e : 枚举值(enumeator)

f: 函数(function)

g : 枚举类型名称

m : 类/结构/联合成员(member)

n: 命名空间(namespace)

p : 函数原型(function prototype)

s : 结构体名称(structure name)

t : 类型定义(typedef)

u : 联合名(union name)

v : 变量定义(variable defination)

访问控制

类成员访问控制,取值:

+ : 公共(public)

# : 保护(protected)

-: 私有(private)

符号定义所在域

符号在何处被定义。

『常用配置选项』

Vim中,可以通过以下选项控制omnicppcomplete查找/补全方式:

OmniCpp_GlobalScopeSearch : 全局查找控制。0:禁止;1:允许(缺省)

OmniCpp_NamespaceSearch: 命名空间查找控制。

0 : 禁止查找命名空间

1 : 查找当前文件缓冲区内的命名空间(缺省)

2 : 查找当前文件缓冲区和包含文件中的命名空间

OmniCpp_DisplayMode: 类成员显示控制(是否显示全部公有(public)私有(private)保护(protected)成员)。

0 : 自动

1 : 显示所有成员

OmniCpp_ShowScopeInAbbr: 选项用来控制匹配项所在域的显示位置。缺省情况下,omni显示的补全提示菜单中总是将匹配项所在域信息显示在缩略信息最后一列。

0 : 信息缩略中不显示匹配项所在域(缺省)

1 : 显示匹配项所在域,并移除缩略信息中最后一列

OmniCpp_ShowPrototypeInAbbr : 是否是补全提示缩略信息中显示函数原型。

0 : 不显示(缺省)

1 : 显示原型

OmniCpp_ShowAccess : 是否显示访问控制信息('+', '-', '#')。0/1, 缺省为1(显示)

OmniCpp_DefaultNamespaces : 默认命名空间列表,项目间使用','隔开。

如:letOmniCpp_DefaultNamespaces = ["std', "MyNamespace"]

OmniCpp_MayCompleteDot: 在'.'号后是否自动运行omnicppcomplete给出提示信息。0/1, 缺省为1

OmniCpp_MayCompleteArray : 在"->"后是否自动运行omnicppcomplete给出提示信息。0/1, 缺省为1

OmniCpp_MayCompleteScope: 在域标识符"::"后是否自动运行omnicppcomplete给出提示信息。0/1, 缺省为0

OmniCpp_SelectFirstItem: 是否自动选择第一个匹配项。仅当"completeopt"不为"longest"时有效。

0 : 不选择第一项(缺省)

1 : 选择第一项并插入到光标位置

2 : 选择第一项但不插入光标位置

OmniCpp_LocalSearchDecl : 使用Vim标准查找函数/本地(local)查找函数。Vim内部用来在函数中查找变量定义的函数需要函数括号位于文本的第一列,而本地查找函数并不需要。

『阅读说明』

1)Vim存在多个配置文件vimrc,比如/etc/vimrc,此文件影响整个系统的Vim。还有~/.vimrc,此文件只影响本用户的Vim。而且~/.vimrc文件中的配置会覆盖/etc/vimrc中的配置。这里我们只修改~/.vimrc文件。

2)Vim的插件(plugin)安装在Vim的runtimepath目录下,你可以在Vim命令行下运行"set rtp“命令查看。这里我们选择安装在~/.vim目录,没有就创建一个。

3)当本文说”在Vim命令行下运行cmdxx命令“时,意思是指在Vim的命令行模式下运行cmdxx命令,即在Vim的正常模式下通过输入冒号":"进入命令行模式,然后紧接着输入命令cmdxx。在后文描述中都会省略冒号":"输入。

4)如果没有说明“在Vim命令行下运行某命令”,则是在shell中执行该命令。

5)如果命令中间被空白符间隔或有与正文容易混淆的字符,我会用双引号将命令与正文区分。所以读者在实际操作时,不要输入命令最前面和最后面引号。

6)本文关于组合快捷键的描述,形如a-b形式的快捷键表示同时按下a键和b键,而形如"a-b c"形式的快捷键,则表示先同时按下a键和b键,然后放开ab键,再按下c键。

7) 本人使用的系统是Ubunt 11.10 ,Vim版本是Vi IMproved 7.3

omnicppcomplete php,vim 中OmniCppComplete的安装和使用相关推荐

  1. 如何获取Vim中所有已安装颜色方案的列表?

    有没有办法获得Vim中所有已安装颜色方案的列表? 这样可以很容易地选择一个而不查看.vim目录. #1楼 您可以在/usr/share/vim/vimNN/colors下看到颜色方案列表( NN是版本 ...

  2. 日常生活小技巧 -- vim 中 ctags 的安装和使用

    ctags 主要是用来创建 Vim 可以使用的 tag 索引文件的. 一.下载安装 Ubuntu下 执行 sudo apt-get install ctags 二.建立索引文件 在你想要建立索引文件的 ...

  3. omnicppcomplete php,vim 插件 -- omnicppcomplete

    omnicppcomplete 插件是基于ctags来实现补全的.所以,要先安装好ctags才可以使用. 下载 安装 cp omnicppcomplete-0.41.zip ~/.vim cd ~/. ...

  4. 【Linux基础】vim配置及插件安装管理

    1 写在前面   Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用 ...

  5. omnicppcomplete - a Vim plugin [转载]

    刚才试用了一下,用以下方式可行,拿的夕角的egear里的cpp来实验,特意转载分享一下omnicppcomplete - a Vim pluginhttp://qlife113.blogspot.co ...

  6. vm怎么装vim_虚拟机中Ubuntu下安装vim及配置文件和插件之菜鸟初体验

    在命令行下,输入命令如图: 必须加上sudo,否则你是没有权限编辑vimrc的. 2. 下图为我的VIM配置.配置很多,所以我也只安装了些我觉得有用的. 输入他们,可以让您的VIM变得更漂亮.舒服. ...

  7. linux vim无法退格,Cygwin下安装vim后,vim中退格键无法正常使用的解决方法

    问题描述: 在Cygwin中安装完vim后 进入vim,发现上下左右键和退格键都无法正常使用 问题分析: 首先考虑到的就是缺少vim的配置文件,首先查看/etc路径下是否有vim的配置文件 admin ...

  8. windows安装vim_如何在Windows中下载,安装和使用Vim

    windows安装vim Vim is Linux based opensource tool. The roots goes to the vi editor. In Linux distribut ...

  9. Vim中安装自动补全插件YouCompleteMe

    前言 自动补全:YouCompleteMe可以说是Vim中最好用的插件了,但是它的安装也可以说的上是Vim中最难的一个了.往往会出现各种错误,在还没有享受到这个插件给我们带来的快感时就会被安装的各种错 ...

  10. 教你一步一步在vim中配置史上最难安装的You Complete Me

    最近在Linux下用vim写Python,vim被称作编辑器之神,写起代码来也是6的飞起,不用鼠标纯键盘操作看起来就有种高大上的感觉,但是美中不足的是,vim并没有自动补全,这对于用惯了IDE的朋友们 ...

最新文章

  1. 深度剖析Kubernetes API Server三部曲 - part 1
  2. WPF里ItemsControl的分组实现
  3. Flask-分开Models解决循环引用
  4. mysql_result函数用不了_mysql_result()函数怎么在PHP中使用
  5. android中按一个按钮弹出字,允许用户在Android中长按一次即可编辑按钮文字
  6. Java JVM、JNI、Native Function Interface、Create New Process Native Function API Analysis
  7. SpringCloud OpenFeign + Nacos正确打开方式!
  8. Cent OS 重置root密码
  9. Mybatis异常There is no getter for property named ‘XXX‘ in ‘class java.lang.String‘
  10. Linux实验室 CentOS关机大法
  11. git查看某次提交的内容
  12. python 深度学习方法代码整理
  13. Charles使用教程
  14. 快速比对源代码的工具_推荐7个代码对比工具
  15. javaScript前端上传文件到腾讯云(对象存储)
  16. access如何保存小数点后_你知道PDF文件旋转页面后如何保存吗?
  17. 基于RNN实现搜狐新闻数据文本分类
  18. TeamViewer和向日葵远控软件的个人使用感觉
  19. HashTab-查看哈希值小工具,一键插件文件md5值
  20. 微信小程序checkbox被挤压变形解决办法

热门文章

  1. Atitit 网络技术体系图 目录 1. 的三网融合是 1 1.1. 电话网、有线电视网 1 1.2. 计算机网 1 2. 计算机网 1 2.1. 互联网 1 2.2. 局域网 1 3. 第1章 计
  2. AAtitit 项目管理 提升开发效率的项目流程方法模型 哑铃型  橄榄型 直板型titi
  3. 不懂投资的基金会计不是好的产品经理
  4. (转)比特币算法——SHA256算法介绍
  5. CTP: 各种错误的测试(补充和修改中)
  6. 阿里云张献涛:2021 弹性计算发生了哪些变化
  7. 以用户为师,报喜鸟用需求助力云备份产品创新
  8. 机器学习笔记(三十):基尼系数、CART
  9. 灯火阑珊处,都市夜归人
  10. 【数字信号去噪】基于matlab小波软阈值+硬阈值+改进阈值轴承故障仿真信号去噪【含Matlab源码 1024期】