1.首先介绍下c.vim,为什么要装c.vim
C.vim即C-Support vim,能够帮助C程序员[当然还有使用C++ 的家伙]很好的完成给文件或者函数说明,给函数添加注释,或者添加一个注释块,添加函数等等,为你节约时间,并保护你的键盘。插件作者Fritz Mehner,编写c.vim的宗旨是“Write and run programs. Insert statements, idioms, comments”.
c.vim 就是c/c++编程的一个IDE,其功能堪比windows里面的vc,不仅可以让你编写代码更加快捷,而且还可以编译程序
2.安装c.vim插件
第一步:下载C.VIM
Vim的官网 下载c.vim 注:我下载的事
第二步 下载好了之后,解压安装
#mkdir ~/.vim //注:所有的插件都要装在这儿
#cp /mnt/feichanghao/vimm/cvim.zip ~/.vim //把插件移动到目标目录中
#cd ~/.vim
#unzip cvim.zip
注:解压的时候会生成一些目录,需要注意一下,因为以后要用
syntax,plugin,ftplugn,doc,c-support,autoload
plugin.:这个文件夹里面放着文件类型插件,后面的a.vim插件直接放在这个目录就行
doc: 这个目录存放的是帮助文档
第三步 激活插件功能,需要配置.vimrc
#cd ~/.vimrc
filetype plugn on //这表示开启加载文件类型插件,而我们的C.vim就是文件类型插件
OK,这样c.vim插件就装好了,就可以使用了。
3.使用c.vim的强大功能,只介绍一部分,其余的查看帮助文档即可
功能1:自动为*.c文件添加文件头说明
当你打开一个扩展名为.c的文件,在文件开始处会自动加上如下的描述,并且将光标定位到description处,此时是insert mode可直接键入文件描述
vim 6.cpp会出现如下界面
当然你可以改变AUTHOR COMPANY等得默认值。
vim ~/.vim/c-support/templates/Templates
现在再创建一个.c 文件,你会看到如下的文件头。
功能二:插入main函数 \im,在正常模式下键入\im
功能三:F9编译,连接
vim由一个程序员开发,而且为更多的程序员所使用,所以在vim中加强了对软件开发的支持,quickfix模式的引入就是一个例子。所谓quickfix模式,它和Normal模式、Insert模式没什么关系,它只是一种加快你开发速度的工作方式。
Quickfix模式的主要思想是保存一个位置列表,然后提供一系列命令,实现在这个位置列表中跳转。
位置列表的产生可以从编译器的编译输出信息中获得.
:cp 跳到上一个错误 ( :help :cp )
:cn 跳到下一个错误 ( :help :cn )
还有很多很多的功能就不在此列举了,可查看帮助文档
直接在vim编辑器中输入\hp 就可以查看还有哪些帮助命令了。
4.介绍下ctags插件,为什么要装ctags
为源码的变量/对象、结构体/类、函数/接口、宏等产生索引文件,以便快速定位。目前支持41种语言,这里仅以C/C++为例:ctags可以产生c/c++语言所有类型的索引文件,也可以为Erlang语言产生索引文件,tags文件就是Taglist和OmniCppComplete工作的基础。
Tag文件(索引文件)无疑是开发人员的利器之一,有了tag文件的协助,你可以在vim查看函数调用关系,类、结构、宏等的定义,可以在任意标签中跳转、返回……相信使用过Source Insight的人对这些功能并不陌生,而在vim中,此功能的实现依赖于tag文件。通常我们使用名为ctags的程序来生成这样的tag文件。
5.安装ctags插件
第一步:下载ctags
Vim的官网 // 注我下载的是ctags-5.8.tar.gz
第二步 下载好了之后,解压安装
#cd ~/.vim //注:所有的插件都要装在这儿
#cp /mnt/feichanghao/vimm/ctags-5.8.tar.gz . //把插件移动到目标目录中
#unzip ctags-5.8.tar.gz -d ctags-5.8 //把压缩文件解压到ctags-5.8文件中
#cd ctags-5.8
#make
#make install
OK,这样ctags插件就装好了,就可以使用了。
6.介绍下ctags插件的用法,当然也是部分功能,其余的看帮助文档就行了
首先介绍几个ctags的命令
1》生成tags文件的命令
ctags –R --languages=c++ /erlang
“-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*”表示所有文件。这条命令会在当前目录下产生一个“tags”文件。
--langguages为什么语言生成tags文件,
Tags文件中包括这些对象的列表:
1).用#define定义的宏
2).枚举型变量的值
3).函数的定义、原型和声明
4).名字空间(namespace)
5).类型定义(typedefs)
6).变量(包括定义和声明)
7).类(class)、结构(struct)、枚举类型(enum)和联合(union)
8).类、结构和联合中成员变量或函数
2》怎么用tags文件
运行vim的时候,必须在“tags”文件所在的目录下运行。否则,运行vim的时候还要用“:set tags=”命令设定“tags”文件的路径,这样vim才能找到“tags”文件。
在完成编码时,可以手工删掉tags文件。
用tags文件常用以下命令
a.我们经常用到的tag跳转命令见下(一般只需要知道CTRL-]和CTRL-T就可以了):
:tag {ident} "跳转到指定的标签
:tags "显示标签栈
CTRL-] "跳转到当前光标下的标签
CTRL-T "跳到标签栈中较早的标签
b.如果这个变量或函数有多处定义,在VI命令行模式
“:ts”命令就能列出一个列表供用户选择。
“:tp”为上一个tag标记文件,
“:tn”为下一个tag标记文件。当然,若当前tags文件中用户所查找的变量或函数名只有一个,“:tp,:tn”命令不可用。
基本这些命令就足够满足我们的需要了。
更多功能通过命令man ctags或在Vim命令行下运行:help ctags查询。
参考文献:
http://blog.csdn.net/duguteng/article/details/7412652
http://blog.csdn.net/zhangzhizhen1988/article/details/8373701
http://blog.csdn.net/g_brightboy/article/details/16830395
7.介绍下taglist插件,为什么要装taglist
想必用过Source Insight的人都记得这样一个功能:SI能够把当前文件中的宏、全局变量、函数等tag显示在Symbol窗口,用鼠标点上述tag,就跳到该tag定义的位置;可以按字母序、该tag所属的类或scope,以及该tag在文件中出现的位置进行排序;如果切换到另外一个文件,Symbol窗口更新显示这个文件中的tag。
在vim中的taglist插件所实现的就是上述类似的功能,有些功能比SI弱,有些功能比SI更强。而且,taglist插件还在不断完善中!
要使用taglist plugin,必须满足:
■打开vim的文件类型自动检测功能:filetype on
■系统中装了Exuberant ctags工具,并且taglist plugin能够找到此工具(因为taglist需要调用它来生成tag文件)
■你的vim支持system()调用
8.安装taglist插件
第一步:下载taglist
Vim的官网 下载c.vim 注:我下载的事
第二步 下载好了之后,解压安装
#cd ~/.vim //注:所有的插件都要装在这儿
#cp /mnt/feichanghao/vimm/taglist_46.zip . //把插件移动到目标目录中
#unzip taglist_46.zip
注:
plugin.:taglist.vim会被放到这个目录
doc: 这个目录存放的是帮助文档.taglist.txt会被放到这个目录
第三步 需要配置.vimrc
#cd ~/.vimrc
let Tlist_Ctags_Cmd='/usr/local/bin/ctags' // 将taglist与ctags关联
let Tlist_Auto_Open = 1 //vim一打开就自动打开这个list框
let Tlist_Show_One_File=1 //每次只显示一个标签文件
let Tlist_Exit_OnlyWindow=1 //如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window=1 //窗口显示在右边
set mouse=a “让鼠标在TilstOpen那个标签上点击的时候生效,就可以跳到对应的地方”
let Tlist_Use_SingleClick=1 //鼠标在点击的tags标签时候就跳到对应的标签定义的地方
OK,这样taglist插件就装好了,就可以使用了。
<CR> 跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
o 在一个新打开的窗口中显示光标下tag
<Space> 显示光标下tag的原型定义
u 更新taglist窗口中的tag
s 更改排序方式,在按名字排序和按出现顺序排序间切换
x taglist窗口放大和缩小,方便查看较长的tag
+ 打开一个折叠,同zo
- 将tag折叠起来,同zc
* 打开所有的折叠,同zR
= 将所有tag折叠起来,同zM
[[ 跳到前一个文件
]] 跳到后一个文件
q 关闭taglist窗口
<F1> 显示帮助
功能可通过在Vim命令行下运行:help taglist.txt查询
9.安装OmniCppComplete插件,为什么要装OmniCppComplete
是一个c++补全的插件,可以做如下补全
命名空间(namespace),类(class),结构(struct)和联合(union)补全
函数属性成员和返回值类型补全
"this"指针成员补全
C/C++类型转换(cast)对象补全
类型定义(typedef)和匿名类型(anonymous types)补全
同样依赖与Ctags工具生成的tags文件。安装步骤跟Taglist类似。
在此就不在写了,去官网:http://www.vim.org/scripts/script.php?script_id=1520
下载,然后安装步骤按照Taglist来安装就行。
同样也 需要配置.vimrc
#cd ~/.vimrc
set nocp //不与vi兼容
set tags+=/c++tags/cpp //c++库生成的自动tags的索引文件,这样只要你编辑文件,的提示里面就自动有c++库里函数的提示
let OmniCpp_NamespaceSearch=1 //命名空间查找控制 0 : 禁止查找命名空间 1 : 查找当前文件缓冲区内的命名空间 2 : 查找当前文件缓冲区和包含文件中的命名空间
let OmniCpp_GlobalScopeSearch=1 //全局查找控制。0:禁止;1:允许
let OmniCpp_ShowAccess=1 // 是否显示访问控制信息('+', '-', '#')。0/1, 缺省为1(显示)
let OmniCpp_MayCompleteArrow=1 //在"->"后是否自动运行omnicppcomplete给出提示信息。0/1
let OmniCpp_MayCompleteScope=1 //在域标识符"::"后是否自动运行omnicppcomplete给出提示信息。0/1
set completeopt=menu //菜单式的提示
OK,这样taglist插件就装好了,就可以使用了。
此时有一些快捷键可以用:
Ctrl+P 向前切换成员
Ctrl+N 向后切换成员
Ctrl+E 表示退出下拉窗口, 并退回到原来录入的文字
Ctrl+Y 表示退出下拉窗口, 并接受当前选项 。
10.安装supertab插件,为什么要装supertab
SuperTab使Tab快捷键具有更快捷的上下文提示功能,加速你的补全。
去官网http://www.vim.org/scripts/script.php?script_id=1643下载一个supertab.vim直接放在plugin目录中即可。
需要配置.vimrc
#cd ~/.vimrc
let SuperTabRetainCompletionType=2
OK,这样taglist插件就装好了,就可以使用了。
SuperTab使用很简单,只要在输入变量名或路径名等符号中途按Tab键,就能得到以前输入过的符号列表,并通过Tab键循环选择
11.安装a.vim插件
作为一个C程序员, 日常Coding时在源文件与头文件间进行切换是再平常不过的事了, 直接用vim打开其源/头文件其实也不是什么麻烦事, 但是只用一个按键就切换过来了, 这是多么贴心的功能啊
去官网http://www.vim.org/scripts/script.php?script_id=31 下载a.vim。
将a.vim 放到 ~/.vim/plugin 文件夹中即可。
安装好a.vim后有下面的几个命令可以用了:
:A 在新Buffer中切换到c/h文件
:AS 横向分割窗口并打开c/h文件
:AV 纵向分割窗口并打开c/h文件
:AT 新建一个标签页并打开c/h文件
至此,我们的VIM IDE 安装完成。
来源:oschina
链接:https://my.oschina.net/u/1540325/blog/305090