linux下VIM插件介绍及安装

//cscope
http://blog.chinaunix.net/u1/46984/showart_514862.html
http://www.yjpub.com/index.php/1081

http://blog.china.alibaba.com/blog/zhiqing20091027/article/b0-i8840186.html

http://hi.baidu.com/suzp1984/blog/item/9077a6c5378945c339db4912.html
http://forum.ubuntu.org.cn/viewtopic.php?f=68&t=138212&sid=50aac42074af78a3f1f774044f1d587e

初识VIM插件不久,边摸索边参考,且不管它用处大小,不知不觉已经收集了近20个插件,感觉到目前为止还算让自己满意吧,于是就有了这篇文章。没有时间做太多的修饰,就直接入正题吧。


一、前提基础
在进行插件安装前,下面两个提示是用户必须要注意或知道的:
1)认识VIM常用的路径宏:
路径宏/windows下/linux下路径:
$VIM(安装目录) C:/gvim /usr/share/vim
$VIMRUNTIME(VIM runtime目录) C:/gvim/vim72 /usr/share/vim/vim72
$HOME(用户目录) C:/Documents and Settings/Jack /home/jack
$MYVIMRC(vimrc文件所在目录) C:/gvim/_vimrc /home/jack/.vimrc
如果没有特殊说明,下面所说的~可表示$HOME or $VIM中任意一个, 如果是windows系统,只需要复
制到$VIM目录即可,而linux系统下普通用户没有root权限问题,所以需要在$HOME目录下建立.vim 及vimfiles目录.

2) VIM 插件一般安装在 5 个地方, 存放插件的路径都列在“runtimepath”选项中, 我们
可以使用 set 命令查看它::set runtimepath?显示结果如下:
[windows]: runtimepath=~/vimfiles, C:/gvim/vimfiles, C:/gvim/vim72,
           C:/gvim/vimfiles/after, ~/vimfiles/after
[linux]: runtimepath=~/.vim, /usr/share/vim/vimfiles, /usr/share/vim/vim72,
         /usr/share/vim/vimfiles/after, ~/.vim/after
只有懂得了这里所说的runtimepath,以及windows和linux在runtimepath的用户目录命名上的细微差异,才能理
解下面所说的意思以及后面所提到的安装方法, 不然会很多人在插件的安装路径上就受到很大困扰(包括我).
$VIMRUNTIME:随 VIM 一同发行的插件与脚本。 不要在这里存放你自己下载或安装的文件, 升级 VIM 的时候, 这里的文件很可能被直接覆盖掉, 不会给出任何提示信息。
Linux下的$HOME/.vim 或 Windows下的%HOME%/vimfiles: 用户自定义脚本及插件。 该目
录下的脚本会在系统脚本加载前执行, 用于扩展与替代系统脚本原有功能。
$VIM/vimfiles:功能同上, 不过是对所有用户均有效的。
Unix 下的 $HOME/.vim/after 或 Windows 下的 %HOME%/vimfiles/after: 用于对已有设置进行一些小的修正和覆写。
$VIM/vimfiles/after: 对所有用户均有效的一些全局设置修正脚本。
以上路径都是使用“VIM 语言”给出的, 一般情况下, $VIMRUNTIME 都不会被定义为系统环境变量, $VIM 在少数情况下会在 VIM 之外被定义。 如果你想知道这些路径都是什么, 可以在 VIM 中使用“:echo $VIMRUNTIME”或“:echo $VIM”。
以上提到的 5 个目录的子目录结构都是相同的。 如果你希望在其它目录里安装插件的话, 建议使用 $VIMRUNTIME 的目录结构作为模版, 将必要的目录结构创建完整, 像这样:
+ <Directory>
+ colors
+ compiler
+ doc
+ etc
+ ftdetect
+ ftplugin
+ indent
+ keymap
+ plugin
+ syntax
3)值得一提的是:linux系统下, 虽然插件安装上后在command line及GUI下都可使用VIM IDE,但是推荐使用GUI方式,因为在command line下有些插件或键盘的操作并不尽如人意,大概是因为插件应GUI而生,所以我们就没有必要到command line下使用这些IDE插件吧
。这里列举一下不方便的一些问题:
如echofunc.vim等等在command line格式下是不起作用的,
NERDTree的树目录内,向上定位时使用键盘定位会比较繁琐(需要你移动Up/Down按键N次), 此方式下鼠标双击是不起作用的。
taglist窗口内定位也是跟NERDTree的操作繁琐程度相当,远不如GUI下鼠标一个双击操作来得更加灵活简单。

二、VIM常用插件及下载点:
1, exuberant ctags :
下载网址:http://ctags.sourceforge.net/
软件功能: 用于产生一个tags文件(代码索引文件),并且在tags文件中记录源文件的索引以帮助你快速得找到某个符号的定义。
它支持相当多的语言,如C、C++、C#、Shell等等。后面所有的包括函数列表显示,变量定义跳转,自动补全等,都要依赖于他。
安装配置: [安装]若是windows系统, 下载一个支持windows的版本的,只要拷贝出
ctags.exe这个文件就可以,把它放在$VIM/vim72下,但建议放在C:/WINDOWS/SYSTEM32目录下,
然后在DOS命令窗口下切换到源码所在目录,使用命令"ctags -R *"生成tags文件,以保证VIM可以在配置文件中的目录列表中找到tags文件,
若是linux系统,下载后需要进行安装.
   [配置]:可以在Normal Mode下,使用"set tags=.../tags"加载"tags"文件,也可以在_vimrc文件中做设置,后者举例:
   set tags=tags
   set tags=E:/code/usr/tags
   set autochdir
常用命令:Ctrl+] 跳到声明定义处
     Ctrl+T 跳回原处
     (详情可参见下载网址, 以下略)
注意事项:
1), 先到源码目录(如果源码是多层的目录,就到最上层的目录,此处假设源码目录为D:/code/)下,运行命令":ctags -R *"以便产生tags文件。
2), 在_vimrc文件内设置"tags"文件所在目录,或者如果经常在这个工程编程的话,也可以将"tags"文件所在目录写到_vimrc文件中,这样VIM才能找到"tags"文件,
设置"tags"文件路径命令是:
set autochdir
set tags=code1/tags;
set tags=code2/tags;
注意tags项设置的目录后面的分号是必不可少的。因为它会让vim首先在当前目录里寻找tags文件,
如果没有找到tags文件,或者没有找到对应的目标,就到父目录中查找,一直向上递归。
3), 上面两点做到后,以gvim打开源代码, ctags即便生效。
因为tags文件中记录的路径总是相对于tags文件所在的路径,所以要使用第二个设置项来改变vim的当前目录。
4),这里有一个小瑕疵,你修改程序后,比如增加了函数定义,删除了变量定义,tags文件不能自动rebuild,你必须手动再运行一下命令":ctags -R"使tags文件更新一下。
5),tags目录如果数量多可以做成脚本,由_vimrc加载进来:
       :if getfsize(".vimscript")>0
                source .vimscript
       :endif
     编辑.vimscript文件,加入如下代码:
     :set tags=/workspace/Server/Rel0.8.2/HomeServer/src/release/tags

2, taglist.vim (依赖于ctags)
下载网址: http://www.vim.org/scripts/script.php?script_id=273
软件功能: 能够列出源文件中的tag(function, class, variable, etc)并跳转, 实现了源代码结构和函数列表的展示,功能非常强大
安装配置: [安装]:下载解压后会发现有两个文件夹(doc,plugin),将它们拷贝到~/.vim or ~/vimfiles or $VIM/vimfiels内即可.
        [配置]:可以省略,也可以在_vimrc(或.vimrc)内添加以下设置:
   "taglist设置
   nnoremap <silent> <F9> :TlistToggle<CR> "映射
        map <silent> <leader>tl :TlistToogle<cr> "输入",tl",就可以打开/关闭taglist窗口
   "let Tlist_Use_SingleClick=1
   let Tlist_Use_Right_Window=1
   let Tlist_File_Fold_Auto_Close=1
   "let Tlist_Show_One_File=1
   "let Tlist_Exit_OnlyWindow=1
常用命令: ":TlistToggle" 或"Tlist" open/close the taglist window.
   ":help taglist" get more information about using the taglist plugin.
注意事项:
1)Change to the $HOME/.vim/doc or $HOME/vimfiles/doc or $VIM/vimfiles/doc directory,
start Vim and run the ":helptags ." command to process the taglist help file.
Without this step, you cannot jump to the taglist help topics.
   2)If the exuberant ctags utility is not present in your PATH, then set the
    Tlist_Ctags_Cmd variable to point to the location of the exuberant ctags
    utility (not to the directory) in the .vimrc file.
   3)If you are running a terminal/console version of Vim and the terminal
    doesn't support changing the window width then set the
    'Tlist_Inc_Winwidth' variable to 0 in the .vimrc file.

Tlist_Use_Right_Window:如果为1则表示taglist窗口出现在右侧(默认为在左边)
Tlist_File_Fold_Auto_Close: 1-当同时显示多个文件中的tag时,可使taglist只显示当前文件tag,其它文件的tag都被折叠起来。
Tlist_Auto_Open: 1-启动VIM后,自动打开taglist窗口;
Tlist_Exit_OnlyWindow:如果为1则表示taglist窗口是最后一个窗口时退出VIM
Tlist_Ctags_Cmd: 用于指定你的Exuberant ctags程序的位置,如果它没在你PATH变量所定义的路径中,需要使用此选项设置一下
Tlist_Show_One_File:显示多个文件中的tag,缺省为显示多个文件中的tag,如果不想同时显示多个文件可以将其设置为1,
Tlist_Sort_Type: 设置为”name”可以使taglist以tag名字进行排序,缺省是按tag在文件中出现的顺序进行排序。
Tlist_Show_Menu: 1-表示在gvim中显示taglist菜单,你可以使用Tlist_Max_Submenu_Items和Tlist_Max_Tag_Length来控制菜单条目数和所显示tag名字的长度
Tlist_Use_SingleClick: 单击或双击一个tag时会跳到该tag定义的位置; 0(默认)=双击,1=单击
Tlist_Close_On_Select: 1-选择了tag后自动关闭taglist窗口
Tlist_Process_File_Always: 1-希望taglist始终解析文件中的tag,不管taglist窗口有没有打开
Tlist_WinHeight,Tlist_WinWidth:设置taglist窗口的高度和宽度
Tlist_Use_Horiz_Window:设置taglist窗口横向显示
快捷键:
<CR>          跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
o             在一个新打开的窗口中显示光标下tag
<Space>       显示光标下tag的原型定义
u             更新taglist窗口中的tag
s             更改排序方式,在按名字排序和按出现顺序排序间切换
x             taglist窗口放大和缩小,方便查看较长的tag
+             打开一个折叠,同zo
-             将tag折叠起来,同zc
*             打开所有的折叠,同zR
=             将所有tag折叠起来,同zM
[[            跳到前一个文件
]]            跳到后一个文件
q             关闭taglist窗口
<F1>          显示帮助
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/vaqeteart/archive/2009/05/03/4146618.aspx

3, NERD_tree.vim
下载网址: http://www.vim.org/scripts/script.php?script_id=1658
软件功能: 在Vim编辑器中以树状方式浏览系统中的文件和目录,支持快捷键与鼠标操作,使用起来十分方便。
NERD tree能够以不同颜色高亮显示节点类型,并包含书签、过滤等实用功能。
安装配置: [安装]:解压缩后会有doc, plugin, nerdtree_plugin3个文件夹,将它们
拷贝到~/.vim or $VIM/vimfiles内即可(同taglist)。
   [配置]:可以_vimrc(.vimrc)文件中做映射
    "NERD_tree plugin setting swap
    map <F10> :NERDTree<CR> "mapping
            imap <F10> <ESC> :NERDTreeToggle<CR>
          
常用命令: NERDTree回车,在gvim窗口的左侧就会出现树形的窗口
   o 打开关闭文件或者目录
   t 在标签页中打开
   T 在后台标签页中打开
   ! 执行此文件
   p 到上层目录(系统会以你打开文件的所在目录为根目录, 所以如果你打开的文件非项目根目录时,你可能要点击"..(up a dir)"将目录上移, 直至项目根目录)
   P 到根目录
   K 到第一个节点
   J 到最后一个节点
   u 打开上层目录
   m 显示文件系统菜单(添加、删除、移动操作)
   ? 帮助
   q 关闭
   Shift+R 刷新目录树
   在TagList窗口,光标移到某一条目上,按回车会自动跳转到该条目定义处。按空格会在屏幕下方的命令栏内
显示tag在源码中完整的表达。
注意事项:
           1) :help NERD_tree.txt for the help page

4, bufexplorer
下载网址: http://www.vim.org/scripts/script.php?script_id=42
软件功能: 方便切换 buffer,切换 buffer后列表自动关闭。
安装方法: 同taglist
常用命令: /be,/bv,/bs 激活bufexplorer;
            j,k   可以上下移动光标;
     回车 打开光标所在的文件
     如果窗口被分割为两个子窗口,分别打开file1和file2,
     此时光标在file1中,如果想切换到file2中,可以先/be激活bufexplorer,然后移动光标到file2,按t即可跳转到file2;
注意事项: 使用一个vim打开多个文件,bufexplorer才起作用

5, echofunc.vim (依赖于ctags)
下载网址: http://www.vim.org/scripts/script.php?script_id=1735
软件功能: 用于显示函数声明
安装配置: [安装]: 同taglist.
     [配置]:可以在$(MYVIMRC)文件内做热键映射, eg.
     "echofunc Configuration
     let g:EchoFuncKeyPrev='<C-b>'
     let g:EchoFuncKeyNext='<C-n>'

常用命令:g:EchoFuncLangsDict
   g:EchoFuncLangsUsed
   g:EchoFuncMaxBalloonDeclarations
   g:EchoFuncKeyNext
   g:EchoFuncKeyPrev
注意事项: 使用前用以下命令生成tags,以后编辑代码函数名后打"("时有参数提示,用"Alt+-[|=]"前后跳转.
            ctags -R --fields=+ls

6, omnicppcomplete
下载网址: http://www.vim.org/scripts/script.php?script_id=1520
软件功能: 实现写C/C++语言时自动补全,可用于 . -> :: 等操作符
安装方法: 解压出来有after/autoload/doc3个文件夹, 将其中的文件取出,同taglist.
常用命令:
注意事项:

7, a.vim
下载网址: http://www.vim.org/scripts/script.php?script_id=31
软件功能: 实现.cpp和.h快速切换
安装方法: 下载后只有一个vim文件, 将其放入~/vimfiles/plugin里即可
常用命令: :A switches to the header file corresponding to the current file being edited (or vise versa)
   :AS splits and switches
   :AV vertical splits and switches
   :AT new tab and switches
   :AN cycles through matches
   :IH switches to file under cursor
   :IHS splits and switches
   :IHV vertical splits and switches
   :IHT new tab and switches
   :IHN cycles through matches
注意事项:
    1)路径设置,有时候命令执行无效,那是因为在默认的A.vim中,他们是这么设置的
    if (!exists('g:alternateSearchPath'))
      let g:alternateSearchPath ='sfr:../source,sfr:../src,sfr:../include,sfr:../inc'
    endif
    根据自己实际情况,可以在vimrc中自己定义路径后就可以使用了。

8, stl.vim
下载网址: http://www.vim.org/scripts/script.php?script_id=2224
软件功能: 支持STL语法高亮
安装方法: 将stl.vim文件放于~/vimfiles/after/syntax/cpp/, 不需要配置.
常用命令:
注意事项:

9, stlrefvim.vim
下载网址: http://www.vim.org/scripts/script.php?script_id=2353
软件功能: 让你轻松的拥有C++ STL的文档帮助
安装方法: 同taglist.
常用命令:
注意事项:

10, DoxygenToolkit.vim
下载网址: http://www.vim.org/scripts/script.php?script_id=987
软件功能: 由注释生成文档,并且能够快速生成函数标准注释, 产生Dox格式的注释 写c/c++等函数时使用方便。
安装方法: (略)
常用命令: :Dox
   :DoxAuthor
配置方法: eg.
   let g:DoxygenToolkit_briefTag_pre="@Synopsis "
   let g:DoxygenToolkit_paramTag_pre="@Param "
   let g:DoxygenToolkit_returnTag="@Returns   "
   let g:DoxygenToolkit_blockHeader="--------------------------------------------------------------------------"
   let g:DoxygenToolkit_blockFooter="----------------------------------------------------------------------------"
   let g:DoxygenToolkit_authorName="Mathias Lorente"
   let g:DoxygenToolkit_licenseTag="My own license"   <-- !!! Does not end with "/<enter>"
注意事项:

11, grep.vim
下载网址: http://www.vim.org/scripts/script.php?script_id=311
软件功能: 在工程中快速查找。
安装方法: [安装] 同taglist
     [配置] 可以在_vimrc文件中添加以下代码,以配置成hotkey:
   nnoremap <silent> <F3> :Grep<CR>
常用命令: :Grep 另外还有很多,这里略过不表。
注意事项:

12, visualmark.vim
下载网址: http://www.vim.org/scripts/script.php?script_id=1026
软件功能: 高亮书签
安装方法: 同taglist
常用命令: 用gvim打开源码文件,将光标定位在需要添加书签的地方,按下ctrl+F2,即添加了书签.使用F2在书签之间正向切换,shift+F2反向切换。
注意事项:

13, minibufexpl.vim
下载网址: http://www.vim.org/scripts/script.php?script_id=159
软件功能: 多文件编辑,可以用tab显示多个文件。
安装方法: [安装] 同taglist
   [配置] 在_vimrc内添加以下代码:
   let g:miniBufExplMapCTabSwitchBufs=1
   let g:miniBufExplMapWindowsNavVim=1
   let g:miniBufExplMapWindowNavArrows=1
常用命令: ctrl+Tab,切换到前一个buffer,并在当前窗口打开文件;
      ctrl+shift+Tab,切换到后一个buffer,并在当前窗口打开文件;
      ctrl+箭头键,可以切换到上下左右窗口中;
      ctrl+h,j,k,l,切换到上下左右的窗口中。
注意事项:

14, cscope
下载网址: http://cscope.sourceforge.net/
软件功能: 用Cscope自己的话说:"你可以把它当做是超过频的ctags", 其功能和强大程度可见一斑吧。
cscope据说诞生就是为了来替代ctags的,因为他有着比ctags更加强大的功能,举个例子,
ctags只能分析出这个函数在哪里被定义,而cscope除了这一点之外,还能分析出这个函数再哪里被调用。
当然cscope目前还是有不少bug的,但是也不影响我们的使用。
安装配置:同ctags一样,需要安装。(略)
注意事项:
1)目前只能在unix系列操作系统下使用cscope,虽然也有windows版本的cscope,不过还有很多bug。所以
暂屈排在后面,但听说功能很强大,是很多linux用户使用VIM的必备插件之一。
2)安装设置内容比较多,详情可以参看以下网址: http://hi.baidu.com/kkernel/blog/item/6aac48b7612990ff31add1a2.html

三、以下选项是可选项,有兴趣的可以使用这些具有特殊用途的插件
1, NERD_commenter.vim
下载网址: http://vim.sourceforge.net/scripts/script.php?script_id=1218
软件功能: 给文件添加注释
安装方法: 同taglist
常用命令: (略)
注意事项: 插件多了hotkey也多,给记忆带来负担,而且长时间不用就会忘个净光,所以本人没有使用这个注释插件

2, c.vim包
下载网址: http://www.vim.org/scripts/script.php?script_id=213
软件功能: 使用它,你可以实现:添加文件头,添加注释,插入一些代码片段,语法检查,读函数文档,注释代码块等。
这个插件的功能比较多, 这个插件的功能比较多,它集成了编译、链接、运行、注释等许多IDE常用的功能
安装方法: 除doc/plugin里面的文件放到$(home)/vimfiles/相应目录下,
其它目录及文件分别放$home/vimfiles下(目录重复时,切记一定不要把原来存在的文件误删除)。
常用命令:
注意事项: g++编译器及相关的库还是要自己下载的,去http://www.mingw.org/下载一个回来,
将g++所在的文件夹添加到系统环境变量里就OK了
c.vim可以加入以下内容,使函数名高亮:
"highlight Functions
syn match cFuntions display "[a-zA-Z_]/{-1,}/s/{-0,}(/{1}"ms=s,me=e-1
hi def link cFuntions Title
网上的使用案例介绍可参见:http://www.vim.org/scripts/script.php?script_id=273.


3,Win Manager(依赖于bufexplorer)据说功能不太好,建议用NERD_tree插件取代之
下载地址: http://www.vim.org/scripts/script.php?script_id=1440
软件功能:
安装方法:
注意事项:

4, Sketch
下载网址: http://www.vim.org/scripts/script.php?script_id=705
软件功能: 在 VIM 里头画 ASCII图,支持填充,剪切,拷贝等,非常有创意.
安装方法:
常用命令:
注意事项:Draw with mouse: boxes, arrows, lines,fills.
install details
plugin file: sketch.vim --> plugin directory
tutorial file: sketch.tut --> wherever
Doesn't come with any maps defined.
I define :map <F1> :call ToggleSketch()<CR> in my vimrc to turn it on and off.
具体详情,参看下载网址吧。

5, matrix
下载网址:http://www.vim.org/scripts/script.php?script_id=1189
软件功能: 是的,说的就是电影 Matrix!Vim的脚本并不是都干“正经事”的
安装方法:
常用命令: 发一个命令“:Matrix”即可按任意键退出

注意事项:

6, Calendar.vim
下载网址: http://www.vim.org/scripts/script.php?script_id=52
软件功能: 打开一个日历
安装方法: [安装] 同taglist
   [配置] let g:calendar_diary=<PATH>

常用命令: :Calendar
     :CalendarH
注意事项: 默认 Calendar 存放的文件路径是 ~/diary, 可能对于 Windows 用户不适用。
     如果想更改,在 vimrc 中设置一下。
  
7, DrawIt(is now distributed as a vimball)
下载网址: http://www.vim.org/scripts/script.php?script_id=40
软件功能: 方便画连线图
安装方法:
常用命令:
注意事项:

7,vimball
下载网址: http://www.vim.org/scripts/script.php?script_id=1502
软件功能: 智能安装插件, 为了方便安装插件的一个插件
安装方法: 同taglist
常用命令:
注意事项: 仅用于linux


1,[bufexplorer]很多人都说重新运行vim就能使用插件了,可是我试了不行.
A: 据说是和runtimepath有关,在vim中运行:set rtp的结果显示:
runtimepath=~/.vim,/usr/local/share/vim/vimfiles,
/usr/local/share/vim/vim72,/usr/local/share/vim/vimfiles/after,~/.vim/after,
里面有~/.vim,不知道为啥不行,也没查到怎么改,本来想放弃了,这时看到一篇不错的文章:
Vim Plugins You Should Know About, Part I: surround.vim(http://www.catonmat.net/blog/vim-plugins-surround-vim/)
里面说运行:so ~/.vim/plugin/bufexplorer.vim来使插件起作用,一试之下果然管用。
再运行:helptags ~/.vim/doc重新生成帮助。

[[: 跳转到代码块的开关去(但要求代码中的'{'必须独占一行)
gD: 跳转到局部变量的定义处
'': 跳转到光标上次依靠的地方,是两个',而不是一个"
mx: 设置书签,x只能是a-z的26个字母
`x: 跳转到书签处(`是1左边的键)
>: 增加缩进, "x>"表示增加以下x行的缩进
<: 减少缩进, "x<"表示减少以下x行的缩进

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值