`
mmdev
  • 浏览: 12915692 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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


1. Ctags

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

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

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

Ctags可以直接使用apt-get来下载,也可以自行下载:http://sourceforge.net/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来获得,而是可以下载到,下载地址:http://www.vim.org/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来获得,下载地址:http://www.vim.org/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显示/主窗口的,让各个窗口各安其位。

下载地址:http://www.vim.org/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的样子了,一般的编辑任务已经可以蛮不错的完成了。当然,插件成千上万,其他还有很多很有用的插件,可以实现注释,代码对齐等等功能,各有巧妙不同,这个就需要在日常使用中自己逐步完善了。

分享到:
评论

相关推荐

    vim插件工具(ctags taglist winmanager neocomplcach)

    资源提供了vim下常用插件,ctags可以实现代码的跳转,taglist方便查看程序结构,winmanager方便多窗口查看多个源文件,neocomplcache则提供自动补全功能。安装后可以感受到vim的便捷!

    vim相关插件较全

    自己当时一个个找,太麻烦了,为了方便大家,将自己找好的打包,基本包括vim所有常用插件包括cscppe/ctags/gbimfullscreen/taglist/bufexplorer/gtrp/minibufexpl/winmanager/

    vim插件和配置 for Linux 自动补全 IDE

    里面的vim插件已经包含了taglist,omnicppcomplete等插件,无需再下载,详细的配置参考.vimrc,注意快捷键使用即可。有什么不喜欢和bug的地方,自行调整.vimrc。ctags命令工具还是要下载安装的。 1. 安装ctags和...

    vim常用插件集合

    Gvim的常用插件,包括ctags,taglist,minibuffer,winmanager,a

    vim 配置文件

    强大的vim配置文件,可同时适用于linux和windows下的vim配置。 涵盖了所有主流插件的配置,常见的显示设置,编译命令的映射。 插件: ctags 代码跟踪 taglist 类视图 winmanager 文件视图 minibuffer 显示多文件...

    vim的配置文件

    本人使用的vim配置文件 包含winmanager,ctags,taglist,autocomplete

    vim多插件打包

    由于vim管网有时候连不上去,特地将之前下载好的几个插件打包提供下载方便大家。

    vim插件集合

    vim插件集合,内有ctags5.7,grep,winmanager,supertab,cscope,taglist

    vim配置文件vimrc

    这是我自己的vim配置文件,包括winmanager、ctags、taglist、nerdtree等插件,功能非常强大,欢迎使用,详细使用介绍http://blog.csdn.net/nersie/article/details/24740155

    vim使用进阶:vim使用技巧、配置、命令和插件

    本文的最后介绍了winmanager插件,使用这个插件,可以把netrw插件、bufexplorer插件和taglist插件整合起来,使vim看起来更像一个集成开发环境(IDE)。 vim使用进阶: lookupfile插件 如果你在开发一个大的项目,当你...

    vim 从入门到精通

    本文的最后介绍了winmanager插件,使用这个插件,可以把netrw插件、bufexplorer插件和taglist插件整合起来,使vim看起来更像一个集成开发环境(IDE). vi/vim使用进阶: lookupfile插件 如果你在开发一个大的项目,当你...

    vim插件打包

    vim中~/.vim 插件打包 ./vimrc文件内容为 "允许鼠标的使用,防止linux终端下无法拷贝 if has('mouse') set mouse=a endif au GUIEnter * simalt ~x "字体的设置 set guifont=Bitstream_Vera_Sans_Mono:h9:cANSI...

    vim_config.tar.bz2

    vim配置文件,已经配置...包含如下vim插件:ctags、nerdTree、Taglist、WinManager、Nerd_comenter。具体使用方法见readme.md文件。也可以参考我的博客:https://blog.csdn.net/Ace_Shiyuan/article/details/105558811

    vim工具安装包

    内含vim7.3安装文件,中文帮助文档安装文件,还有vim系列工具:ctags58,taglist_45,winmanager等的安装文件。

    vim_dev_V1.1

    Linux下内核开发VIM环境基本配置 一、linux-vim C开发环境主要由下列文件组成: (一)VIM插件 winmanager.vim - 提供侧边栏功能-F9打开,修改版显示到右侧 taglist.vim - 提供函数以及变量列表,整合到侧边栏 ...

    VIM's Plugins Resource

    但是配置vim的众多插件资源分散 vim.org,反正我是上不去 github一般家庭网络不是很稳定 花了好多时间,攒下的vim插件大集合。 网上有一键安装vim配置的包,但是窃以为,还是自己一层一层堆砌出来的编辑器更好,就像...

    vim for Windows 集成环境 IDE 自动补全 tags

    当前vim7.4适用于windows环境 已安装的插件和支持的功能: ...9. winManager:文件浏览,默认没有自动打开,需要时使用wm命令打开winManager和TagList。 10. pyflakes:python代码检查,在命令模式输入:cc进行检查。

    gvim环境配置包

    安装包中包含:gvim7.3 ctags57 taglist_45 winmanager a.vim grep.vim minibufexpl.vim vimcdoc-1.7.0-setup.exe visualmark.vim winmanager.zip 安装步骤建议参考:用Gvim建立IDE编程环境(最详细,最适合初学者...

    vimrc--2014-10-06

    " (5-2)程序管理vim插件——vim-addons " (6)plugin omnicppcomplete 自动补全 " (7)plugin Taglist " (8)plugin WinManager " (9)plugin MiniBufferExplorer " (10)plugin QuickFix " (11)plugin 代码折叠fold " ...

    自己配的vim,很好用

    自己配的vim,很好用,得先下载winmanager,taglist,cscrop,ctags等工具配合来用,可以像vs一样的效果

Global site tag (gtag.js) - Google Analytics