Vim常用插件及其安装

本文参考[url]http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx[/url]在此表示感谢。

首先在建立~/.vim,以后所有的插件都存放在此。在.vim下分别建立doc、syntax、plugin三个文件夹分别存放插件帮助文档、语法文件、插件。

[size=medium][color=darkblue]1、ctags[/color][/size]
软件功能:用于产生一个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文件仍然可以使用。

[size=medium][color=darkblue]2、taglist[/color][/size]
下载地址:[url]http://www.vim.org/scripts/script.php?script_id=273[/url]
在Vim的一个垂直或水平的分割窗口中显示一个文件中定义的tags(函数,类,结构,变量等)。
在.vimrc中加入如下设置:
"不同时显示多个文件的tag,只显示当前文件的
let Tlist_Show_One_File=1
"如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Exit_OnlyWindow=1

在vim中用如下命令打开taglist窗口
:Tlist

将taglist帮助文件放在~/.vim/doc目录下,如果需要使用:help taglist.txt命令查看帮助文档,需要事先在vim中执行如下命令:
:helptags ~/.vim/doc

使用:将光标移动到taglist窗口的tag上面,按回车即可跳转到此tag的定义处,如果只想查看此tag的完整名称表达,按空格。

[size=medium][color=darkblue]3、WinManager[/color][/size]
下载地址:[url]http://www.vim.org/scripts/script.php?script_id=95[/url]
WinManager可以在vim中像taglist一样开一个窗口来浏览工程文件。其实vim自带了文件浏览的插件netrw.vim。只不过WinManager将taglist和netrw整合在了一起。在WinManager界面上可以用下面的一些命令来进行常用的目录和文件操作:
[table]
|<F1>|显示帮助
|<cr>|如果光标下是目录, 则进入该目录; 如果光标下文件, 则打开该文件
|-|返回上级目录
|c|切换vim 当前工作目录正在浏览的目录
|d|创建目录
|D|删除目录或文件
|i|切换显示方式
|R|文件或目录重命名
|s|选择排序方式
|x|定制浏览方式, 使用你指定的程序打开该文件
[/table]
在.vimrc中加入如下配置:
"设置WinManager与TagList的布局:前者在上,后者在下
let g:winManagerWindowLayout='FileExplorer|TagList'
"映射WinManager快捷键,在normal模式下按wm,控制开启和关闭
nmap wm :WMToggle<CR>


[size=medium][color=darkblue]4、MiniBufExplorer[/color][/size]
下载地址:[url]http://www.vim.org/scripts/script.php?script_id=159[/url]
简单的说就是标签页文件。当vim打开单个文件的时候,MiniBufExplorer没什么作用。当打开两个以上的文件时,MiniBufExplorer会在vim的上面打开一个新的窗口空间,列出了已经打开的文件。把光标放到这个窗口上面时,可以有如下的几个命令使用:
[table]
|<Tab>|向前循环切换到每个buffer名上
|<S-Tab>|向后循环切换到每个buffer名上
|<Enter>|在打开光标所在的buffer
|d|删除光标所在的buffer
[/table]
下面的两个功能需要在.vimrc中加入:
let g:miniBufExplMapCTabSwitchBufs = 1

[table]
|<C-Tab>|向前循环切换到每个buffer上,并在但前窗口打开
|<C-S-Tab>|向后循环切换到每个buffer上,并在但前窗口打开
[/table]
如果在.vimrc中设置了下面这句:
let g:miniBufExplMapWindowNavVim=1

则可以用<C-h,j,k,l>切换到上下左右的窗口中去,就像:
C-w,h j k l 向"左,下,上,右"切换窗口.
在.vimrc中设置:
let g:miniBufExplMapWindowNavArrows=1

是用<C-箭头键>切换到上下左右窗口中去.
主要命令:
: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.

[size=medium][color=darkblue]5、在工程中查找——Grep[/color][/size]
下载地址:[url]http://www.vim.org/scripts/script.php?script_id=311[/url]
对光标所在的词来个全工程范围的grep。
[table]
|:Grep|按照指定的规则在指定的文件中查找
|:Rgrep|同上, 但是是递归的grep
|:GrepBuffer|在所有打开的缓冲区中查找
|:Bgrep|同上
|:GrepArgs|在vim的argument filenames (:args)中查找
|:Fgrep|运行fgrep
|:Rfgrep|运行递归的fgrep
|:Egrep|运行egrep
|:Regrep|运行递归的egrep
|:Agrep|运行agrep
|:Ragrep|运行递归的agrep
[/table]
上面的命令是这样调用的:
[table]
|:Grep [<grep_options>] [<search_pattern> [<file_name(s)>]]
|:Rgrep [<grep_options>] [<search_pattern> [<file_name(s)>]]
|:Fgrep [<grep_options>] [<search_pattern> [<file_name(s)>]]
|:Rfgrep [<grep_options>] [<search_pattern> [<file_name(s)>]]
|:Egrep [<grep_options>] [<search_pattern> [<file_name(s)>]]
|:Regrep [<grep_options>] [<search_pattern> [<file_name(s)>]]
|:Agrep [<grep_options>] [<search_pattern> [<file_name(s)>]]
|:Ragrep [<grep_options>] [<search_pattern> [<file_name(s)>]]
|:GrepBuffer [<grep_options>] [<search_pattern>]
|:Bgrep [<grep_options>] [<search_pattern>]
|:GrepArgs [<grep_options>] [<search_pattern>]
[/table]
为了简化操作,在.vimrc中加入如下配置:
nnoremap <silent> <F3> :Rgrep<CR>

将光标移到需要查找的单词上面,按F3即可。比如查找ABC:
在最下面的命令行会显示:
Search for pattern: ABC
此时你还可以编辑该行, grep支持正则表达式。
按下回车后,在最下面的命令行会显示:
Search in files: *
是问搜索范围, 默认是该目录下的所有文件, 此时你还可以编辑该行, 比如你只想搜索源码文件:
Search in files: *.c *.h
然后在按下回车, 会在弹出的QuickFix窗口中列出所有符合条件的搜索结果, 你可以在其中查找你想要的结果。

[size=medium][color=darkblue]6、NERD_commenter——添加注释[/color][/size]
下载地址:[url]http://www.vim.org/scripts/script.php?script_id=1218[/url]
<leader>cc 添加注释
<leader>cu 取消注释

[size=medium][color=darkblue]7、Python代码折叠——python_ifold[/color][/size]
下载地址:[url]http://www.vim.org/scripts/script.php?script_id=2002[/url]
python_ifold是python_fold的改进版本。
可实现Python代码的折叠。打开Python脚本时会发现所有的代码已经折叠了,其中还现了折叠部分拥有的行数。在折叠的行按下zo可以打开折叠,按下zc会折叠上代码。python_ifold是默认启用的。

[size=medium][color=darkblue]8、pydicton——python代码智能补全[/color][/size]
下载地址:[url]http://www.vim.org/scripts/script.php?script_id=850[/url]
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


[size=medium][color=darkblue]9、NERD_tree[/color][/size]
下载地址:[url]http://www.vim.org/scripts/script.php?script_id=1658[/url]
由于WinManager的fileexplorer功能不能自动更新,相比之下NERD_tree就强大许多了。

[size=medium][color=darkblue]10、AutoComplPop——自动提示[/color][/size]
下载地址:[url]http://www.vim.org/scripts/script.php?script_id=1879[/url]
解压之后会有三个文件夹,全部放到.vim目录下。特别是别忘了autoload这个目录下的acp.vim也要放到.vim相应的autoload目录下。

[size=medium][color=darkblue]11、vimIM——vim的中文输入插件[/color][/size]
下载地址:[url]http://vimim.googlecode.com/svn/vimim/vimim.html[/url]
ctrl+\ 直接在vim中切换输入法。也可以输入英文,然后ctrl+6,显示中文。

[size=medium][color=darkblue]12、auto-pairs——括号自动配对[/color][/size]
下载地址:[url]https://github.com/jiangmiao/auto-pairs[/url]

[size=medium][color=darkblue]13、xml编辑插件——标签自动配对[/color][/size]
下载地址:[url]http://www.vim.org/scripts/script.php?script_id=1397[/url]
也支持html、xhtml、docbk、xsl等。详见主页说明。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值