如何将一个Vim配置成C/C++兼Erlang开发环境

我的未来我决定 提交于 2019-12-07 19:09:19

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 安装完成。

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!