首先在建立~/.vim,以后所有的插件都存放在此。在.vim下分别建立doc、syntax、plugin三个文件夹分别存放插件帮助文档、语法文件、插件。
1、ctags
软件功能:用于产生一个tags文件(代码索引文件),tags文件中记录的源文件的索引以帮助你快速得找到某个符号的定义。它支持相当多的语言,如C、C++、C#、Shell等等。后面所有的包括函数列表显示,变量定义跳转,自动补全等,都要依赖于它。
ctags的全名叫做“Exuberant Ctags”,可以从新立得里面找到。
可以通过在vim中输入
:!ctags -R
在当前路径下建立一个tags文件,然后就可以在vim中使用跳转功能了。其中的-R选项是递归搜索子目录下的相关符号。所谓跳转就是可以随时转到自己想要的函数、类型、结构体、类等等的定义处。比如光标处于任意位置时可以普通模式下输入
:ta func_name
就可以直接将光标定位到func_name函数处。当然,其他的命名也可以使用这种方法进行快速定位。另外就是可以在光标指向一个函数名时按下Ctrl+],马上跳转到这个函数的定义。在跳转到定义位置之后,可以按下Ctrl+o快速返回原来的编辑位置。
如果tags文件不再当前目录下则用
:set tags=filename 来指定。
PS:ctags是一个程序用于生成tags文件。tags文件是当前目录下所有源文件的标签链接文件。在一个没有ctags的vim中只是无法生成新的tags文件,但是已有的tags文件仍然可以使用。
2、taglist
下载地址: http://www.vim.org/scripts/script.php?script_id=273
在Vim的一个垂直或水平的分割窗口中显示一个文件中定义的tags(函数,类,结构,变量等)。
在.vimrc中加入如下设置:
- "不同时显示多个文件的tag,只显示当前文件的
- let Tlist_Show_One_File=1
- "如果taglist窗口是最后一个窗口,则退出vim
- let Tlist_Exit_OnlyWindow=1
在vim中用如下命令打开taglist窗口
将taglist帮助文件放在~/.vim/doc目录下,如果需要使用:help taglist.txt命令查看帮助文档,需要事先在vim中执行如下命令:
使用:将光标移动到taglist窗口的tag上面,按回车即可跳转到此tag的定义处,如果只想查看此tag的完整名称表达,按空格。
3、WinManager
下载地址: http://www.vim.org/scripts/script.php?script_id=95
WinManager可以在vim中像taglist一样开一个窗口来浏览工程文件。其实vim自带了文件浏览的插件netrw.vim。只不过WinManager将taglist和netrw整合在了一起。在WinManager界面上可以用下面的一些命令来进行常用的目录和文件操作:
|
显示帮助 |
|
如果光标下是目录, 则进入该目录; 如果光标下文件, 则打开该文件 |
- |
返回上级目录 |
c |
切换vim 当前工作目录正在浏览的目录 |
d |
创建目录 |
D |
删除目录或文件 |
i |
切换显示方式 |
R |
文件或目录重命名 |
s |
选择排序方式 |
x |
定制浏览方式, 使用你指定的程序打开该文件 |
在.vimrc中加入如下配置:
- "设置WinManager与TagList的布局:前者在上,后者在下
- let g:winManagerWindowLayout='FileExplorer|TagList'
- "映射WinManager快捷键,在normal模式下按wm,控制开启和关闭
- nmap wm :WMToggle
4、MiniBufExplorer
下载地址: http://www.vim.org/scripts/script.php?script_id=159
简单的说就是标签页文件。当vim打开单个文件的时候,MiniBufExplorer没什么作用。当打开两个以上的文件时,MiniBufExplorer会在vim的上面打开一个新的窗口空间,列出了已经打开的文件。把光标放到这个窗口上面时,可以有如下的几个命令使用:
|
向前循环切换到每个buffer名上 |
|
向后循环切换到每个buffer名上 |
|
在打开光标所在的buffer |
d |
删除光标所在的buffer |
下面的两个功能需要在.vimrc中加入:
- let g:miniBufExplMapCTabSwitchBufs = 1
|
向前循环切换到每个buffer上,并在但前窗口打开 |
|
向后循环切换到每个buffer上,并在但前窗口打开 |
如果在.vimrc中设置了下面这句:
- let g:miniBufExplMapWindowNavVim=1
则可以用
切换到上下左右的窗口中去,就像:
C-w,h j k l 向"左,下,上,右"切换窗口.
在.vimrc中设置:
- let g:miniBufExplMapWindowNavArrows=1
是用切换到上下左右窗口中去.
主要命令:
:MiniBufExplorer " Open and/or goto Explorer
:CMiniBufExplorer " Close the Explorer if it's open
:UMiniBufExplorer " Update Explorer without navigating
:TMiniBufExplorer " Toggle the Explorer window open and closed.
5、在工程中查找——Grep
下载地址: http://www.vim.org/scripts/script.php?script_id=311
对光标所在的词来个全工程范围的grep。
:Grep |
按照指定的规则在指定的文件中查找 |
:Rgrep |
同上, 但是是递归的grep |
:GrepBuffer |
在所有打开的缓冲区中查找 |
:Bgrep |
同上 |
:GrepArgs |
在vim的argument filenames (:args)中查找 |
:Fgrep |
运行fgrep |
:Rfgrep |
运行递归的fgrep |
:Egrep |
运行egrep |
:Regrep |
运行递归的egrep |
:Agrep |
运行agrep |
:Ragrep |
运行递归的agrep |
上面的命令是这样调用的:
:Grep [] [ []] |
:Rgrep [] [ []] |
:Fgrep [] [ []] |
:Rfgrep [] [ []] |
:Egrep [] [ []] |
:Regrep [] [ []] |
:Agrep [] [ []] |
:Ragrep [] [ []] |
:GrepBuffer [] [] |
:Bgrep [] [] |
:GrepArgs [] [] |
为了简化操作,在.vimrc中加入如下配置:
将光标移到需要查找的单词上面,按F3即可。比如查找ABC:
在最下面的命令行会显示:
Search for pattern: ABC
此时你还可以编辑该行, grep支持正则表达式。
按下回车后,在最下面的命令行会显示:
Search in files: *
是问搜索范围, 默认是该目录下的所有文件, 此时你还可以编辑该行, 比如你只想搜索源码文件:
Search in files: *.c *.h
然后在按下回车, 会在弹出的QuickFix窗口中列出所有符合条件的搜索结果, 你可以在其中查找你想要的结果。
6、NERD_commenter——添加注释
下载地址: http://www.vim.org/scripts/script.php?script_id=1218
cc 添加注释
cu 取消注释
7、Python代码折叠——python_ifold
下载地址: http://www.vim.org/scripts/script.php?script_id=2002
python_ifold是python_fold的改进版本。
可实现Python代码的折叠。打开Python脚本时会发现所有的代码已经折叠了,其中还现了折叠部分拥有的行数。在折叠的行按下zo可以打开折叠,按下zc会折叠上代码。python_ifold是默认启用的。
8、pydicton——python代码智能补全
下载地址: http://www.vim.org/scripts/script.php?script_id=850
pydiction-1.2中有四个文件,除了帮助文档和插件之外,还有两个分别是:complete-dict和pydiction.py。
其中complete-dict放在~/.vim/tools目录下。pydiction.py是可选文件,官网上的解释是:
Python script used to generate the dictionary. You can optionally run this script to add more modules to complete.
.vimrc中需要如下配置:
- autocmd FileType python set complete+=k~/.vim/tools/complete-dict
9、NERD_tree
下载地址: http://www.vim.org/scripts/script.php?script_id=1658
由于WinManager的fileexplorer功能不能自动更新,相比之下NERD_tree就强大许多了。
10、AutoComplPop——自动提示
下载地址: http://www.vim.org/scripts/script.php?script_id=1879
解压之后会有三个文件夹,全部放到.vim目录下。特别是别忘了autoload这个目录下的acp.vim也要放到.vim相应的autoload目录下。
11、vimIM——vim的中文输入插件
下载地址: http://vimim.googlecode.com/svn/vimim/vimim.html
ctrl+\ 直接在vim中切换输入法。也可以输入英文,然后ctrl+6,显示中文。
12、auto-pairs——括号自动配对
下载地址: https://github.com/jiangmiao/auto-pairs
13、xml编辑插件——标签自动配对
下载地址: http://www.vim.org/scripts/script.php?script_id=1397
也支持html、xhtml、docbk、xsl等。详见主页说明。