900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > VIM插件配置——ctags/taglist/omnicppcomplete/winmanager

VIM插件配置——ctags/taglist/omnicppcomplete/winmanager

时间:2022-05-25 09:27:16

相关推荐

VIM插件配置——ctags/taglist/omnicppcomplete/winmanager

VIM的功能强大并不仅仅表现在支持很多快捷方式上,还有很多各种各样的插件,帮助你实现各种功能,方便你编码。这些插件还都是免费开放的,需要的人可以方便的下载到。

1. Ctags

Ctags可以扫描指定的源文件,找出其中所包含的语法元素,并将找到的相关内容记录下来(在目录下生成tags文件)。

因为VIM本身没有工程的概念,编辑中全靠程序员自己对代码所处位置的熟悉,跨文件的跳转就没那么容易了。这点对于项目刚接触时还是比较让人头疼的,所以Ctags这个插件很好的解决了这个问题。

尽管Ctags也可以支持其它编辑器,但是它正式支持的只有VIM。并且VIM中已经默认安装了Ctags。

Ctags可以直接使用apt-get来下载,也可以自行下载:/projects/ctags/files/

熟练的使用Ctags仅需记住下面七条命令:(很简单吧,呵呵)

●ctags -R --c++-kinds=+px --fields=+iaS --extra=+q

-R:ctags循环生成子目录的tags

--c++-kinds=+px :ctags记录c++文件中的函数声明和各种外部和前向声明

--fields=+iaS :ctags要求描述的信息,其中i表示如果有继承,则标识出父类;a表示如果元素是类成员的话,要标明其调用权限(即是public还是private);S表示如果是函数,则标识函数的signature。

--extra=+q:强制要求ctags做如下操作—如果某个语法元素是类的一个成员,ctags默认会给其记录一行,可以要求ctags对同一个语法元素再记一行,这样可以保证在VIM中多个同名函数可以通过路径不同来区分。

这条命令会在当前目录下产生一个“tags”文件,当用户在当前目录中运行vi时,会自动载入此tags文件。

●$ vi –t tag (请把tag替换为您欲查找的变量或函数名),例如:

$ vim -t main

这个命令将打开定义“main”ct(变量或函数或其它)的文件,并把光标定位到这一行。

●:ts (ts 助记字:tags list, “:”开头的命令为VI中命令行模式命令),如果这个变量或函数有多处定义,在VI命令行模式“:ts”命令就能列出一个列表供用户选择。

●:tp (tp 助记字:tags preview)---?此命令不常用,可以不用记

●:tn (tn 助记字:tags next) ---?此命令不常用,可以不用记

“:tp”为上一个tag标记文件,“:tn”为下一个tag标记文件。当然,若当前tags文件中用户所查找的变量或函数名只有一个,“:tp,: tn”命令不可用。

●Ctrl + ],这是最方便使用的方法了,把光标移到变量名或函数名上,然后按下“Ctrl+]”,这样就能直接跳到这个变量或函数定义的源文件中,并把光标定位到这一行。

●Ctrl + T,退回原来的地方

注意:运行VIM的时候,必须在“tags”文件所在的目录下运行。否则,运行VIM的时候还要用“:settags=”命令设定“tags”文件的路径,这样VIM才能找到“tags”文件。在完成编码时,可以手工删掉tags文件(帚把不到,灰尘不会自己跑掉^_^)。

可以在vimrc文件中增加这么一句,这样,按F12就可以直接生成tags文件了。

nmap <F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>

需要指出的是,这里的<CR>是需要录入的一部分,并非是一个回车。

2. taglist

taglist也是VIM下常见的一个插件,这个插件可以把当前文件中的宏、全局变量、函数等tag显示在一个独立的窗口,编码时可以非常方便的帮你掌握文件的内容。

要使用taglist plugin,必须满足:

●打开vim的文件类型自动检测功能

●系统中装了Exuberant ctags工具,并且taglist plugin能够找到此工具(因为taglist需要调用它来生成tag文件)

●你的vim支持system()调用

taglist并非用apt-get来获得,而是可以下载到,下载地址:/scripts/script.php?script_id=273

下载后,把该文件在~/.vim/目录中解压缩,这会在你的~/.vim/plugin和~/.vim/doc目录中各放入一个文件

plugin/taglist.vim – taglist插件

doc/taglist.txt - taglist帮助文件

为了方便的获得帮助,用命令行加入帮助文档,然后就可以方便的使用:help taglist.txt来获得帮助了

:helptags ~/.vim/doc

:TlistOpen —— 打开tag窗口

:TlistClose —— 关闭tag窗口

:TlistToggle —— 在打开/关闭之间切换tag窗口

使用下行的命令可以使用<F8>作为快捷键来打开/关闭tag窗口,同样这里的<CR>是需要录入的一部分,并非是一个回车。

nnoremap <silent> <F8> :TlistToggle<CR>

let Tlist_Ctags_Cmd='ctags' " 因为我们放在环境变量里,所以可以直接执行

let Tlist_Use_Right_Window=1 " 让窗口显示在右边,0的话就是显示在左边

let Tlist_Show_One_File=0 "让taglist 可以同时展示多个文件的函数列表,如果想只有1个,设置为1

let Tlist_File_Fold_Auto_Close=1 " 非当前文件,函数列表折叠隐藏

let Tlist_Exit_OnlyWindow=1 " 当taglist是最后一个分割窗口时,自动推出vim

let Tlist_Process_File_Always=0 "是否一直处理tags.1:处理;0:不处理。不是一直实时更新tags,因为没有必要

let Tlist_Inc_Winwidth=0

在我的vimrc文件中,这一段内容如下:

nnoremap <silent> <F8> :TlistToggle<CR>

let Tlist_Show_One_File=1

let Tlist_Exit_OnlyWindow=1

let Tlist_File_Fold_Auto_Close=1

3. OmniCppComplete

omnicppcomplete,Vim中C/C++代码补全插件,基于ctags所生成的标签库。

同样无法用apt-get来获得,下载地址:/scripts/script.php?script_id=1520

目前最新版本是0.41

安装就是将下载的包解压到~/.vim目录下,压缩包里面包含三个个目录after和autoload,doc。需要提一下的是文档中说after和autoload目录放在~/.vim目录下即可,我实际使用发现必须在~/.vim/plugin目录下也保持一份才行,也就是需要2份,估计是和我使用的软件版本有关。

:helptags ~/.vim/doc 就是导入帮助文件。

插件这就算安装完了。然后再到vim配置文件中加入如下的配置:

"-- omnicppcomplete setting --

set completeopt=menu,menuone

let OmniCpp_MayCompleteDot = 1 " autocomplete with .

let OmniCpp_MayCompleteArrow = 1 " autocomplete with ->

let OmniCpp_MayCompleteScope = 1 " autocomplete with ::

let OmniCpp_SelectFirstItem = 2 " select first item (but don't insert)

let OmniCpp_NamespaceSearch = 2 " search namespaces in this and included files

let OmniCpp_ShowPrototypeInAbbr = 1 " show function prototype in popup window

let OmniCpp_GlobalScopeSearch=1

let OmniCpp_DisplayMode=1

4. winmanager

VIM自带的netrw.vim插件可以在窗口中显示当前目录中的文件并能选择打开,这个功能非常体贴,不过这个窗口看上去比较难看,不象现在的IDE一样简洁明了。

所以。。。winmanager这个插件就是用来管理文件显示/tag显示/主窗口的,让各个窗口各安其位。

下载地址:/scripts/script.php?script_id=95

下载后在~/.vim中解压

plugin/winfileexplore.vim

winmanager.vim - winmanager插件

wintagexplore.vim

doc/winmanager.txt- winmanager帮助文件

为了方便的获得帮助,用命令行加入帮助文档

:helptags ~/.vim/doc

然后在rc文件中加入:

let g:winManagerWindowLayout='FileExplorer|TagList'

nmap <F4> :WMToggle<CR>

nmap <C-w><C-f> :FirstExplorerWindow<CR>

nmap <C-w><C-b> :BottomExplorerWindow<CR>

这样设置后,用F4可以方便的控制winmanager的开关

在安装了这几个插件后,你的VIM的功能已经大大被增强了,拥有了函数跳转,代码补全,tag列表,目录显示等功能,有点类似IDE的样子了,一般的编辑任务已经可以蛮不错的完成了。当然,插件成千上万,其他还有很多很有用的插件,可以实现注释,代码对齐等等功能,各有巧妙不同,这个就需要在日常使用中自己逐步完善了。

应用内测 pre.im

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。