以前看过vgod的一篇文章介绍过如何结合Pathogen与git submodule来管理Vim插件。当时觉得非常惊艳,用完后vim的配置目录果真清爽了不少。后来很偶然的发现了一个更强大的Vim插件——Vundle!
Vundle给我感觉就像是Pathogen和Git的封装,它通过Vim来后台调用Git,从而免去用户直接在命令行操作Git。而Vundle之所以能够使用Git来管理所有的Vim插件,关键就在于Github上的一个vim-scripts帐号,它将vim.org上所有的插件克隆到了Github上。本来这个帐号是为Pathogen建的,结果被Vundle直接拿来用了.除了Github上的仓库,Vundle还支持任意的git仓库。
Vundle可以通过一个命令安装所有的插件,一个命令给所有的插件升级。而要安装的插件则都写在vim的配置文件里,所以看起来一目了然,更方便管理。Vundle的官方README里面有详细的安装指南,这里简单介绍一下配置过程。
首先自然是先去项目主页下载好插件。放到.vim/bundle目录中。可以使用以下命令安装:$ git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
然后在自己的配置文件里面加上下面的语句,启用Vundle:set nocompatible " be iMproved
filetype off " required!
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
接下来就能在配置文件中指定安装哪些插件了,Vundle支持三种格式,具体见下面的配置:" 使用Vundle来管理Vundle,这个必须要有。
Bundle 'gmarik/vundle'
"接下来是要安装的插件
"格式1:Github上其他用户的仓库(非vim-scripts账户里的仓库,所以要加Github用户名)
Bundle 'tpope/vim-fugitive'
Bundle 'tpope/vim-rails.git'
"格式2:vim-scripts里面的仓库,直接打仓库名即可。
Bundle 'L9'
Bundle 'FuzzyFinder'
"格式3:非Github的Git仓库
Bundle 'git://vim-latex.git.sourceforge.net/gitroot/vim-latex/vim-latex'
最后在所有Bundle命令后面加上文件类型检测:filetype plugin indent on
大功告成,在vim里面输入:BundleInstall命令后Vundle就会自动帮你把所有的插件装好。而:BundleInstall!命令则会自动升级所有插件。
你也可以使用Vundle手动管理插件,例如一个mytemplates插件,并放到了.vim/myplugin目录中,那么可以在vim的配置文件中加入下面的命令:set rtp+=~/.vim/myplugin/mytemplates/
这样Vunlde就会自动去myplugin目录中载入mytempaltes插件。
现在,就可以用.vimrc来管理所有的插件了。
Vim 插件管理--pathogen
安装了 pathogen 以后只要在 ~/.vim (注:MS Windows 下貌似是 ~\vimfiles,下同)里建立一个 bundle 目录,然后把所有插件一一放在 ~/.vim/bundle/插件名 下面,就可以使用。
插件的安装过程与没有 pathogen 时类似,但从安装结束开始,一切的插件管理过程都能得到简化。 试用过某个插件以后需要删除?安装在 bundle 目录里最后把插件的目录一删了之就行了。
想保持使用某个插件的最新版本?直接从插件的仓库 checkout 一份代码到 bundle 目录,或者别的地方再 symlink 一下就行了。
想了解一下这个插件的实现方法?有了 pathogen 去那里找插件脚本再也不是问题了。
pathogen 只有一个单独的脚本,所谓安装就是把它放在你的 ~/.vim/autoload 目录。 如果你有一个类 Unix 环境(Linux, Mac OS X),只需要下面这一条命令:
wget -O ~/.vim/autoload/pathogen.vim http://www.vim.org/scripts/download_script.php?src _id=12116
要启用它,还要在 .vimrc 文件里,
filetype plugin indent on
之前的任何地方,加入下面这句:
call pathogen#runtime_append_all_bundles()
这样就搞定了,把常用的插件都重装在 ~/.vim/bundle 里面吧!
个人喜欢直接把插件从仓库里 checkout 出来,以后直接通过版本控制来更新 Vim 插件。
以 NERDTree 这个插件为例,安装起来是这样的:
git clone http://github.com/scrooloose/nerdtree.git path/to/code/nerdtree ln -s path/to/code/nerdtree ~/.vim/bundle/nerdtree
更新到最新版本:
cd path/to/code/nerdtree && git pull origin
删除该插件:rm -rf ~/.vim/bundle/nerdtree
怎么样,有了pathogen,管理 Vim 插件是不是就简单了很多!!