Vundle
1.1、Vundle简介
short for:Vim bundle
是什么 ?:a Vim plugin manager.
开发语言:VimL
源码仓库:https://github.com/VundleVim/Vundle.vim
1.2、安装Vundle

step1、创建~/.vim/bundle目录

mkdir -p ~/.vim/bundle

step2、通过git下载Vundle源码

git -C ~/.vim/bundle clone http://github.com/VundleVim/Vundle.vim.git

step3、在~/.vimrc文件头开始输入如下内容

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim

call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

" let Vundle manage bundle, required
Plugin 'VundleVim/Vundle.vim'

" All of your Plugins must be added before the following line
call vundle#end()            " required

filetype plugin indent on    " required

" To ignore plugin indent changes, instead use:
"filetype plugin on

" Put your non-Plugin stuff after this line

插件的安装配置应该放在call vundle#begin()call vundle#end()之间。

1.3、查看Vundle帮助文档

Vim底行模式下执行如下命令:

help vundle.txt
1.4、通过Vundle安装插件

Vundle安装插件的方式有3种:

  • ~/.vimrc配置文件中进行配置,然后在Vim底行模式下执行PluginInstall命令进行安装。
  • Vim底行模式下执行PluginInstall <PluginName>命令进行安装。
  • Vim底行模式下执行PluginSearch <query>,然后直接进行安装选中的插件。

3种方式有好有坏,对于在~/.vimrc配置文件中进行配置这种方式的好处是,我一旦配置好,并且把它放到版本控制系统中, 如果其他人有需要,我可以分享给其他人,或者我重新安装,非常的方便。通过在Vim底行模式下执行PluginInstall <PluginName>这种方式当时比较方便,以后就麻烦了。

1.5、在~/.vimrc中配置要安装的插件

对于在~/.vimrc配置文件中进行配置要安装的插件的方式有4种:

1.5.1、安装在vim-scripts仓库中的插件

如果您要安装的插件在vim-scripts仓库中, 那么,配置的格式如下:

Plugin 'PluginName'

PluginName中的空格使用-替换。

示例:

Plugin 'L9'

执行这个指令的时候,首先检测该插件是否已经下载到本地了,如果没有下载, 就会使用git下载,下载的方式如下:

git -C ~/.vim/bundle clone --recursive https://github.com/vim-scripts/L9.git

--recursive是顺便把子模块的代码也一起下载下来。

下载到~/.vim/bundle/L9目录中。

然后才是安装该插件。要注意的是:安装插件不等于下载插件,安装插件是对该插件资源的管理, 你自己下载下来,放到对应的位置,但是你没有配置该指令,就不会安装,它的功能你也就用不了,这就是插件管理器的作用, 插件管理器不仅仅是下载插件代码的。这个要搞清楚。

1.5.2、安装在GitHub仓库中的插件

如果您要安装的插件在GitHub仓库中, 那么,配置的格式如下:

Plugin 'userName/repoName'

示例:

Plugin 'tpope/vim-fugitive'
Plugin 'Lokaltog/vim-easymotion'
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
Plugin 'tpope/vim-rails.git'

执行这个指令的时候,首先检测该插件是否已经下载到本地了,如果没有下载, 就会使用git下载,下载的方式如下:

git -C ~/.vim/bundle clone --recursive https://github.com/tpope/vim-fugitive.git

--recursive是顺便把子模块的代码也一起下载下来。

下载到~/.vim/bundle/vim-fugitive目录中。

1.5.3、安装在非GitHub仓库中,但使用git管理的插件

如果您要安装的插件使用git管理的,但是它并不在GitHub仓库中, 那么,配置的格式如下:

Plugin 'git://...'

示例:

Plugin 'git:https://gitee.com/mirrors/youcompleteme.git'

执行这个指令的时候,首先检测该插件是否已经下载到本地了,如果没有下载, 就会使用git下载,下载的方式如下:

git -C ~/.vim/bundle clone --recursive https://gitee.com/mirrors/youcompleteme.git

--recursive是顺便把子模块的代码也一起下载下来。

下载到~/.vim/bundle/youcompleteme目录中。

1.5.4、安装在本地文件系统中的插件

如果您要安装的插件在本地的文件系统中,那么,配置的格式如下:

Plugin 'file://...'

示例:

Plugin 'file:///Users/gmarik/path/to/plugin'
1.6、Vundle提供的命令

Vundle提供了下面的命令用来管理插件(这些命令只能运行在Vim底行模式):

1.6.1、PluginSearch [keyword]

查询指定关键字(keyword)的插件。如果没有指定keyword,会列出所有的插件。

示例:

Vim底行模式下输入如下命令:

PluginSearch java

出现如下的查询列表:

这里通过上下键切换选中的插件,选中某个插件之后,按下i键进行安装选中的插件,只是, 这种安装方式不会在~/.vimrc中写入你安装的这个插件的配置。

1.6.2、PluginInstall [pluginName]

安装指定pluginName的插件。如果没有指定pluginName,就安装在~/.vimrc配置文件中配置的插件。

Vim底行模式下输入如下命令:

PluginInstall

出现如下的列表:

横线停留在哪里,就表示正在安装哪个插件,横线走到最下面,就表示安装完成。

1.6.3、PluginList

列出已经安装的插件。

Vim底行模式下输入如下命令:

PluginList

出现如下的列表:

需要注意的是:在~/.vimrc配置文件中配置的插件与这里的安装列表可能并不完全一样,这是因为, 在~/.vimrc配置文件中配置的插件只是表明你想安装它,但是,如果您没有通过PluginInstall命令进行安装, 那么它就没有安装,不会出现在已经安装的列表中;另外,我们通过PluginInstall <PluginName>和通过PluginSearch <query>进行安装的插件,都没有往~/.vimrc配置文件写配置。

1.6.4、PluginUpdate [pluginName]

更新指定pluginName的插件。如果没有指定pluginName,就更新PluginList中的插件。

PluginUpdate等效于PluginInstall!

1.6.5、PluginClean [pluginName]

卸载指定pluginName的插件。如果没有指定pluginName, 就卸载在PluginList中,但没有在~/.vimrc中配置的插件。

这个命令不会删除在~/.vimrc配置文件中的相关插件配置,也不会删除文件系统中的相关文件,只是做了一个标志而已。

1.7、使用Vundle的注意事项

一般的,Vim在安装的时候,会把vi命令指向vim命令,但有时候不会, 所以,有时候,当你用vi打开文件的时候,可能会出现如下的错误:

E492: Not an editor command: Plugin 'gmarik/vundle'

解决的办法:只需要自己把vi命令指向vim命令指向即可,如下:

alias vi='vim'