Vim 包管理
Vim 的很多特色和高级功能都是通过插件的方式提供的。这样的模式使得 Vim 能否按需定制,在即保证功能的情况下又避免了臃肿。同时,这也是 Vim 强大和灵活的原因之一。
1. Vim 的包管理工具
Vim 有三种插件管理器:
- Vundle
 - Vim-plug
 - Vim 原生插件管理器
 
这个小节我们主要介绍前两种第三方包管理器,原生 Vim 包管理针对批量管理插件不友好,需要手动维护。不像第三方包管理可以提供针对性功能(分支选择,条件显示等),所以推荐方式还是用第三方包管理,这也是推荐方式。
2. Vundle 包管理
Vundle 是最使用广泛的第三方 Vim 开源包管理器。可以很容易安装、更新、卸载插件。
- Github地址
 - 最新版本:0.10.2
 
2.1 Vundle 安装
- 
安装 Git
 - 
Windows:直接官网下载安装包到本地安装
 - 
Ubuntu:使用
apt install git安装。 - 
Git 克隆 Vundle 到本地:
 
运行这条命令就可以把 Vundle 克隆到本地: git clone https://github.com/VundleVim/Vundle.vim.git~/.vim/bundle/Vundle.vim
root@JD:/data# git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
Cloning into '/root/.vim/bundle/Vundle.vim'...
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 3140 (delta 0), reused 0 (delta 0), pack-reused 3139
Receiving objects: 100% (3140/3140), 935.39 KiB | 31.00 KiB/s, done.
Resolving deltas: 100% (1106/1106), done.
- 配置 Vimrc 加载相应插件
 
因为篇幅问题,Vimrc 我放到了Github上。大家可以下载到本地家目录下重命名为.vimrc.。
配置完 Vimrc 之后直接 Vim 打开后就会按需加载相应的插件了:

Tips : 安装插件还可以再命令模式下使用 PluginInstall 方式进行安装。大家可以自行去了解一下这种方式。
2.2 Vim-plug 安装
Vim -plug 是另外一个 Vim 的插件管理器,算得上是一个后起之秀,相比于 Vundle 它有以下的亮点:
- Vim-plug 更加轻量
 - 可以并行安装、更新,速度更快
 - 支持回滚更新等操作
 - 支持 Branch/tag/commit
 - 支持外部管理插件
 - 按需加载可加快启动时间
 
安装步骤
- 
同样需要通过Git 克隆代码到本地。
curl -fLo〜/ .vim/ autoload / plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
 
Tips: 大家可以注意下所有包管理器目录都在家目录的.vim 下。
autoload: Vim-plug 包管理器
bundle: Vundle 包管理器
- 同样需要通过Vimrc来加载,但是语法会有一点不一样。
 
Tips: vim-plug 包管理器vimrc 配置插件需要包含在 call plug#begin(’~/.vim/plugged’) 和 call plug#end() 之间。
call plug#begin('~/.vim/plugged')
" Make sure you use single quotes
" Shorthand notation; fetches https://github.com/junegunn/vim-easy-align
Plug 'junegunn/vim-easy-align'
" Any valid git URL is allowed
Plug 'https://github.com/junegunn/vim-github-dashboard.git'
" Multiple Plug commands can be written in a single line using | separators
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
" On-demand loading
Plug 'scrooloose/nerdtree', { 'on':  'NERDTreeToggle' }
Plug 'tpope/vim-fireplace', { 'for': 'clojure' }
" Unmanaged plugin (manually installed and updated)
Plug '~/my-prototype-plugin'
" Initialize plugin system
call plug#end()
vim-plug 加载插件有几个特点:
- 允许直接通过 github 地址加载插件
 - 可以同时加载多个插件
 - 还可以通过本地手动加载和更新插件
 - 可以更具 git branch 来加载相应分支
 
打开 Vim,安装插件
Vim-plug 使用方式
基础命令
命令 | 解释 | 
---|---|---
PlugInstall | 安装插件 | 
PlugUpdate | 更新插件 | 
PlugClean | 插件卸载 | 
PlugUpgrade | 更新 vim-plug 本身 | 
PlugStatus | 检查插件状态 | 
PlugDiff | 查看前一个更新日志 | 
PlugSnapshot | 生成当前插件快照脚本 |   
通过不同选项按需加载插件,vimrc 文件中插件语法可以总结为: Plug ‘插件名’, {‘option’: ‘条件’}
| 选项 | 解释 | 案例 | 备注 | 
|---|---|---|---|
| do | 加载后需要执行的额外操作 | Plug ‘junegunn/fzf’, { ‘dir’: ‘~/.fzf’, ‘do’: ‘./install --all’ } | 加载插件后通过do 选项执行./install–all命令 | 
| on | 按照命令调用加载 | Plug ‘scrooloose/nerdtree’, { ‘on’: ‘NERDTreeToggle’ } | 只有NERDTreeToggle命令被调用时候才会加载插件 | 
| for | 按照文件类型加载 | Plug ‘tpope/vim-fireplace’, { ‘for’: ‘clojure’ } | 只有文件类型是clojure时候才会加载插件 | 
| branch/tag/commit | 根据仓库分支标签等条件 | Plug ‘rdnetto/YCM-Generator’, { ‘branch’: ‘stable’ } | 加载分支为 stable 的插件 | 
| dir | 自定义插件安装目录 | Plug ‘junegunn/fzf’, { ‘dir’: ‘~/.pl’} | 加载插件到自定义pl目录 | 
3. 推荐使用 Vim-plug
这一小节我们介绍了两种 Vim 的包管理工具,在这里其实我更推荐大家使用 vim-plug ,与 Vundle相比较 vim-plug 有以下优点:
- 代码更新,社区维护更活跃
 - 性能更好
 - 语法更直观简单
 - 支持按需加载
 - 可以同时加载多个插件还可以通过本地手动加载和更新插件
 - 可以根据 git branch 来加载相应分支
 - 可以查看回滚和更新
 
4. 小结
Vim 包管理方便了我们加载插件。让我们更加专注于开发。丰富的插件让Vim 如虎添翼提供了丰富的功能。让我们可以 DIY 一个属于自己的 IDE。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。
