vim 自身希望通过在 .vim/ 目录中预定义子目录管理所有插件(比如,子目录 doc/ 存放插件帮助文档、plugin/ 存放通用插件脚本),vim 的各插件打包文档中通常也包含上述两个(甚至更多)子目录,用户将插件打包文档中的对应子目录拷贝至 .vim/ 目录即可完成插件的安装。一般情况下这种方式没问题,但我等重度插件用户,.vim/ 将变得混乱不堪,至少存在如下几个问题:

  • 插件卸载易误。你需要先知道 doc/ 和 plugin/ 子目录下哪些文件是属于该插件的,再逐一删除,容易多删/漏删。
    我希望每个插件在 .vim/ 下都有各自独立子目录,这样需要升级、卸载插件时,直接找到对应插件目录变更即可;另外,我希望所有插件清单能在某个配置文件中集中罗列,通过某种机制实现批量自动安装/更新/升级所有插件。vundle( )为此而生,它让管理插件变得更清晰、智能。

vundle 会接管 .vim/ 下的所有原生目录,所以先清空该目录,再通过如下命令安装 vundle:

接下来在 .vimrc 增加相关配置信息:

  1. filetype off
  2. set rtp+=~/.vim/bundle/Vundle.vim
  3. " vundle 管理的插件列表必须位于 vundle#begin() 和 vundle#end() 之间
  4. call vundle#begin()
  5. Plugin 'VundleVim/Vundle.vim'
  6. Plugin 'altercation/vim-colors-solarized'
  7. Plugin 'tomasr/molokai'
  8. Plugin 'vim-scripts/phd'
  9. Plugin 'Lokaltog/vim-powerline'
  10. Plugin 'octol/vim-cpp-enhanced-highlight'
  11. Plugin 'kshenoy/vim-signature'
  12. Plugin 'vim-scripts/BOOKMARKS--Mark-and-Highlight-Full-Lines'
  13. Plugin 'majutsushi/tagbar'
  14. Plugin 'vim-scripts/indexer.tar.gz'
  15. Plugin 'vim-scripts/DfrankUtil'
  16. Plugin 'vim-scripts/vimprj'
  17. Plugin 'dyng/ctrlsf.vim'
  18. Plugin 'terryma/vim-multiple-cursors'
  19. Plugin 'scrooloose/nerdcommenter'
  20. Plugin 'vim-scripts/DrawIt'
  21. Plugin 'SirVer/ultisnips'
  22. Plugin 'derekwyatt/vim-protodef'
  23. Plugin 'scrooloose/nerdtree'
  24. Plugin 'fholgado/minibufexpl.vim'
  25. Plugin 'gcmt/wildfire.vim'
  26. Plugin 'sjl/gundo.vim'
  27. Plugin 'Lokaltog/vim-easymotion'
  28. Plugin 'suan/vim-instant-markdown'
  29. Plugin 'lilydjwg/fcitx.vim'
  30. " 插件列表结束
  31. call vundle#end()
  32. filetype plugin indent on

对应一个插件(这与 go 语言管理不同代码库的机制类似),后续若有新增插件,只需追加至该列表中即可。vundle 支持源码托管在 https://github.com/ 的插件,同时 vim 官网 上的所有插件均在 https://github.com/vim-scripts/ 有镜像,所以,基本上主流插件都可以纳入 vundle 管理。具体而言,仍以 ctrlsf.vim 为例,它在 .vimrc 中配置信息为 dyng/ctrlsf.vim,vundle 很容易构造出其真实下载地址 ,然后借助 git 工具进行下载及安装。

此后,需要安装插件,先找到其在 github.com 的地址,再将配置信息其加入 .vimrc 中的call vundle#begin() 和 call vundle#end() 之间,最后进入 vim 执行

便可通知 vundle 自动安装该插件及其帮助文档。比如,我在 .vimrc 中添加了 4 个插件:

(vundle 批量安装插件)
要卸载插件,先在 .vimrc 中注释或者删除对应插件配置信息,然后在 vim 中执行

    即可删除对应插件。插件更新频率较高,差不多每隔一个月你应该看看哪些插件有推出新版本,批量更新,只需执行

    即可。

    通过 vundle 管理插件后,切勿通过发行套件自带的软件管理工具安装任何插件,不然 .vim/ 又要混乱了。