网上好多人所说的“解压,把doc目录下的文件复制到~/.vim/doc下即可”是不起作用的。这里参考【2】中的步骤进行安装。
tar-xzvfvimcdoc-1.9..tar.gz.tar.gz2.然后进入vimcdoc-1.9.0目录并执行./vimcdoc.-i该安装程序会自动识别Vim的安装路径,将中文的文档拷贝到相应的地方。原有的英文文档不受影响。NOTE:使用-i选项的话,缺省同时安装vimcdoc.vim全局插件,该插件会在.vim下生成一个plugin目录。可是使用-I选项来安装:
./vimcdoc.-I如果没vimcdoc.vim插件(该插件设置缺省编码为utf-8,使得每次使用:help命令时都优先使用中文的帮助文档),但又想使用:help命令时都优先使用中文的帮助文档,可以在vimrc文件中配置:
SetVimhelptoChineseandutf-8encodingversion>=603sethelplang=cnsetencoding=utf-setfileencoding=utf-endif3.卸载:Linux:如果是使用的自动安装脚本安装的话,只要运行下面的命令即可:
%跳转到配对的括号去[[跳转到代码块的开头去(但要求代码块中'{'必须单独占一行)gD跳转到局部变量的定义处''跳转到光标上次停靠的地方,是两个',而不是一个"mx设置书签,x只能是a-z的26个字母x跳转到书签处(""是1左边的键)
增加缩进,"x>"表示增加以下x行的缩进<减少缩进,"x<"表示减少以下x行的缩进
首先查看你的home目录下有没有.vimrc这个文件,没有就新建一个,这就是配置文件了,从大牛那复制过来的,每条的功能具体解释看注释,可以自行选择自己所需要的功能
~/arm$cd~~$gedit.vimrc注:使用gedit主要是为了方便大段大段的文字粘贴!
【ctags功能】:
【ctags的安装】1)在线安装:
sudoapt-getinstallctags(ubuntu)(RedHat系列使用:yuminstallctags)若不成功,可能是因为源的问题,换一下软件源update后重新执行上述命令即可。2)手动下载安装:下载地址
$cdctags-5.8$./configure$make#makeinstall安装结束后,使用ctags命令测试是否成功或whatisctags,whereisctags等
【生成tags文件】安装成功后,首先要为源码文件生成tags文件。
$ctags-R递归的为当前目录及子目录下的所有代码文件生成tags文件为某些源码生成tags文件,使用如下命令
$ctagsfilename.cfilename1.cfile.h或
$ctags*.c*.h为了使得字段补全有效,在生成tags时需要一些额外的参数,如:ctags-R--c++-kinds=+px--fields=+iaS--extra=+q其中:选项c++-kinds用于指定C++语言的tags记录类型,--c-kinds用于指定c语言的,通用格式是--{language}-kinds选项fileds用于指定每条标记的扩展字段域extra选项用于增加额外的条目:f表示为每个文件增加一个条目,q为每个类增加一个条目
【使用方法】在vim打开源码时,指定tags文件,才可正常使用,偶然使用时可以手动指定,在vim命令行输入:
:settags=./tags(当前路径下的tags文件)若要引用多个不同目录的tags文件,可以用逗号隔开或者,设置~/.vimrc,加入一行,则不用手动设置tags路径:
settags=~/path/tags若要加入系统函数或全局变量的tag标签,则需执行:
ctags-I__THROW–file-scope=yes–langmap=c:+.h–languages=c,c++–links=yes–c-kinds=+p--fields=+S-R-f~/.vim/systags/usr/include/usr/local/include并且在~/.vimrc中添加(亦可用上面描述的手动加入的方式):
settags+=~/.vim/systags这样,便可以使用系统库函数名补全、原型预览等功能了。
如果经常在不同工程里查阅代码,那么可以在~/.vimrc中添加:
settags=tags;setautochdir设置好了tags文件,在定位变量/函数的定义时,最常用的快捷键是:
Ctrl+]跳转到变量或函数的定义处,或者用命令
:taname而使用快捷组合键
Ctrl+o/t返回到跳转前的位置。另外,ctags不会生成局部变量的索引,不过可以使用gd组合键(对光标所在处的word进行快捷查找定位)来定位,也是相当快捷的。
$vim-tmyAdd用vim打开文件时,添加参数-tfuncName会自动打开定义该函数的文件并定位到定义首行,上面这句就是找到myAdd定义的文件打开并将光标置于定义的第一行处。
:tags会列出查找/跳转过程(经过的标签列表)另外,还有一些vim环境中其他较为好用的快捷键:
->*定位至当前光光标所指单词的下一次出现的地方->#定位至当前光光标所指单词的上一次出现的地方->n定位至跳至已被标记出的单词下一次出现的地方->shift+n定位至跳至已被标记出的单词上一次出现的地方
可以在help中得到更详细的ctags用法,vim中使用
我已经习惯了在vc++6.0中使用参数列表以及导航栏之类的工具,那里面列出了当前文件中的所有宏,全局变量,函数名等,在查看代码时用这个窗口总揽全局,切换位置相当方便,因此,如果在linux下vim中也可以同样实现这个功能,就再方便不过了。Taglist用于列出了当前文件中的所有标签(宏,全局变量,函数名等)
:~$vim-addonsinstalltaglist配置Taglist在vim配置文件/home/user/.vimrc中加入如下的配置:
"--Taglistsetting--letTlist_Ctags_Cmd='ctags'"因为我们放在环境变量里,所以可以直接执行letTlist_Use_Right_Window=1"让窗口显示在右边,0的话就是显示在左边letTlist_Show_One_File=0"让taglist可以同时展示多个文件的函数列表letTlist_File_Fold_Auto_Close=1"非当前文件,函数列表折叠隐藏letTlist_Exit_OnlyWindow=1"当taglist是最后一个分割窗口时,自动推出vim"是否一直处理tags.1:处理;0:不处理letTlist_Process_File_Always=1"实时更新tagsletTlist_Inc_Winwidth=0进入vim后用命令":Tlist"打开/关闭taglist窗口
帮助文档
"设置winmanager"设置界面分割letg:winManagerWindowLayout="TagList|FileExplorer""设置winmanager的宽度,默认为25letg:winManagerWidth=30"定义打开关闭winmanager快捷键为F8nmap
安装好了前文介绍的中文帮助手册,用下面的命令可以看介绍:
:helpif_cscop.txt在这里简单摘抄一点:Cscope是一个交互式的屏幕下使用的工具,用来帮助你:
因此我们可以了解到,cscope绝对是加强版的ctags
./configuremakemakeinstall//需要root权限先在~/vimrc中增加一句:
:setcscopequickfix=s-,c-,d-,i-,t-,e-这个是设定是否使用quickfix窗口来显示cscope结果,用法在后面会说到。
跟Ctags一样,要使用其功能必须先为代码生成一个cscope的数据库,在项目的根目录运行下面的命令:
$cd/home/wooin/vim71/$cscope-Rbq此后会生成三个文件
$llcscope.*-rw-rw-r--1wooinwooin1.1M2007-09-3010:56cscope.in.out-rw-rw-r--1wooinwooin6.7M2007-09-3010:56cscope.out-rw-rw-r--1wooinwooin5.1M2007-09-3010:56cscope.po.out打开文件,开始Coding
$cdsrc$vimain.c进入vim后第一件事是要把刚才生成的cscope文件导入到vim中来,用下面的命令:
:csadd/home/wooin/vim71/cscope.out/home/wooin/vim71上面这条命令很重要,必须写全,不能只写前半句:
:csadd/home/wooin/vim71/cscope.out因为源码是多级目录的,如果这样写,cscope是无法在子目录中的源码中工作的,当然,如果源码都在同一级目录中就无所谓了.如果要经常用cscope的话,可以把上面那句加到~/.vimrc中去.cscope的主要功能是通过同的子命令"find"来实现的"cscopefind"的用法:
csfindc|d|e|f|g|i|s|tname0或s查找本C符号(可以跳过注释)1或g查找本定义2或d查找本函数调用的函数3或c查找调用本函数的函数4或t查找本字符串6或e查找本egrep模式7或f查找本文件8或i查找包含本文件的文件如果每次查找都要输入一长串命令的话还真是件讨人厌的事情,Cscope的帮助手册中推荐了一些快捷键的用法,下面是其中一组,也是我用的,将下面的内容添加到~/.vimrc中,并重启vim:
nmap
学习QuickFix窗口的使用一般会用到一下帮助,稍稍看一下就会对QuickFix窗口的使用方法有所了解:
:helpquickfix:help:make:help'makeprg':help'errorformat':help'switchbuf':helplocation-list:helpgrep:help:vimgrep:help:grep:helpstarstar-wildcard所谓quickfix模式,它和Normal模式、Insert模式没什么关系,它只是一种加快开发速度的工作方式。
通常,我们在编程过程中,经常要写代码,编译,修改编译错误,这个过程会数十遍上百遍的重复。如果你是根据编译器输出的错误信息,打开出错的文件,找到出错的行,然后再开始修改,那效率未免太低下了。
利用vim的quickfix模式,可以大大加快这一过程,你可以在vim启动编译,然后vim会根据编译器输出的错误信息,自动跳到第一个出错的地方,让你进行修改;修改完后,使用一个快捷键,跳到下一个错误处,再进行修改。
为了做到这一点,你首先要定义编译时所使用的程序,对大多数使用Makefile的项目来说,vim的缺省设置”make“已经可以满足要求了。如果你的项目需要用一个特殊的程序进行编译,就需要修改’makeprg‘选项的值。
我们以”helloworld”程序这个简单的例子为例,讲一下quickfix模式的用法。
该程序的内容如下,里面包含了三个小小的错误:
/*helloworlddemo*/#include :setmakeprg=gcc\-Wall\-ohello\hello.c上面的命令会把hello.c编译为名hello的可执行文件,并打开了所有的Warnning。如果编译命令中有空格,需要使用’\‘对空格进行转义,上面的例子就使用了’\‘转义空格。 我们设置好’makeprg‘选项后,输入下面的命令就可以编译了: vim可以同时记住最新的10个错误列表,也就是说你最近10次使用”:make“命令编译所遇到的错误都保存着,可以使用”:colder“和”:cnewer“命令,回到旧的错误列表,或者到更新的错误列表。 在quickfix模式里经常用到的命令有: :cc显示详细错误信息(:help:cc):cp跳到上一个错误(:help:cp):cn跳到下一个错误(:help:cn):cl列出所有错误(:help:cl):cw如果有错误列表,则打开quickfix窗口(:help:cw):col到前一个旧的错误列表(:help:col):cnew到后一个较新的错误列表(:help:cnew)更多的命令,以及这些命令更详细的解释,请参见手册。 对于经常用到的命令,最好提供更方便的使用方法,在我的vimrc中的定义: autocmdFileTypec,cppmap :helplocation-list“以及”:help:lmake“。九、快速浏览和操作Buffer--插件:MiniBufExplorer使用方法:重新启动vim,当你只编辑一个buffer的时候MiniBufExplorer派不上用场,当你打开第二个buffer的时候,MiniBufExplorer窗口就自动弹出来了,狭长的窗口就是MiniBufExplorer窗口,其中列出了当前所有已经打开的buffer,当把光标置于这个窗口时,有下面几个快捷键可以用: letg:miniBufExplMapCTabSwitchBufs=1 letg:miniBufExplMapWindowNavVim=1则可以用 letg:miniBufExplMapWindowNavArrows=1是用 浏览/编辑代码的时候,常常需要在头文件(.h)和源文件(.c,.cpp,.cc...)之间切换,或者打开某个包含文件(如#include...),a.vim正是用来满足以上需求的一款Vim插件。 官方下载网址:a.vim:AlternateFilesQuickly。当前最新版本:v2.18。 a.vim的安装相当简单,下载a.vim后复制进Vim插件目录(一般为~/.vim/plugin),必要时再重启一下Vim就可以使用了。 :A头文件/源文件切换:AS分割窗后并切换头/源文件(切割为上下两个窗口):AV垂直切割窗口后切换头/源文件(切割为左右两个窗口):AT新建Vim标签式窗口后切换:AN在多个匹配文件间循环切换将光标所在处单词作为文件名打开:IH切换至光标所在文件:IHS分割窗口后切换至光标所在文件(指将光标所在处单词作为文件名打开):IHV垂直分割窗口后切换:IHT新建标签式窗口后切换:IHN在多个匹配文件间循环切换快捷键操作 :Grep 按照指定的规则在指定的文件中查找:Rgrep 同上,但是是递归的grep:GrepBuffer 在所有打开的缓冲区中查找:Bgrep 同上:GrepArgs 在vim的argumentfilenames(:args)中查找:Fgrep 运行fgrep:Rfgrep 运行递归的fgrep:Egrep 运行egrep:Regrep 运行递归的egrep:Agrep 运行agrep:Ragrep 运行递归的agrep上面的命令是类似这样调用的: :helpMark该"书签"有个缺点:不可见.按照上面的方法安装好VisualMark后,你什么也不用设置,如果是gvim,直接在代码上按下Ctrl+F2,发现光标所在的行变高亮了。如果你设置了多个书签,你可以用F2键正向在期间切换,用Shift+F2反向在期间切换. 对于MicrosoftVisualStudio此类IDE的代码补全功能当然是在喜欢不过了,输入一个对象名后再输入"."或者"->",则其成员名都可以列出来。这里要使用的功能叫"new-omni-completion(全能补全)",可以用下面的命令看看介绍: :helpnew-omni-completion你还需要在~/.vimrc文件中增加下面两句: filetypepluginindenton打开文件类型检测,加了这句才可以用智能补全 setcompleteopt=longest,menu关掉智能补全时的预览窗口 请确定你的Ctags5.6已经安装好,并且生成的tags文件已经可以用了用vim打开源文件 $vi/home/wooin/vim71/src/main.c设置tags文件 :settags=/home/wooin/vim71/tags随便找一个有成员变量的对象,比如"parmp",进入Insert模式,将光标放在"->"后面,然后按下"Ctrl+XCtrl+O",此时会弹出一个下列菜单,显示所有匹配的标签,如下图: 此时有一些快捷键可以用:|:------|-----------------|Ctrl+P|向前切换成员||Ctrl+N|向后切换成员||Ctrl+E|表示退出下拉窗口,并退回到原来录入的文字||Ctrl+Y|表示退出下拉窗口,并接受当前选项| 如果增加了一些成员变量,全能补全还不能马上将新成员补全,需要重新生成一下tags文件,但是不用重启vim,只是重新生成一下tags文件就行了,这时全能补全已经可以自动补全了. 搭建C语言IDE的工作就在这里结束了,实在是感叹vim的强大。但是基本上的工作分为三部分:1、安装Vim和Vim基本插件2、Vim配置文件3.安装自己所需的插件使用vim来进行C语言编程,进行插件的选择以及快捷键的配置,除了各个插件所定义的快捷键外,都可以根据自己的要求定制。而插件的安装使用过程都是按照以下模式进行的:1.如果是常用插件,vim是自带的,也可以在线自动安装2.专用插件可以通过在插件网络主页下载一个源码包,解压后编译安装: