vim-plug / pathogen / Vundle
vim-plug
Minimalist Vim Plugin Manager
vim-plug ,一个极简主义Vim插件管理器,Vundle的完美替代品。
特点:
- 部署简单:只有一个文件。不需要代码范例。
- 使用简单:语法简洁、直观。
- 超快的异步、并行安装或更新插件。
- 创建浅克隆来最大化的减小磁盘空间和下载时间。
- 按需加载插件使Vim启动速度更快。
- 可以查看和回滚更新。
- 支持git branch/tag/commit。
- 支持更新回滚。
- 支持Post-update 钩子。
- 支持外部管理的插件。
一位博主用相同的Vim配置测试了分别使用vim-plug 、Vundle 、pathogen和NeoBundle(已停止开发、替换为Dein.vim)作为插件管理器时的Vim启动时间, 测试结果表明开启了按需加载插件功能(On-demand loading / Lazy loading)的vim-plug所需的启动时间最短,只需135ms。[1]
vim-plug安装:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
vim-plug使用:
在.vimrc添加如下语句:
call plug#begin('~/.vim/plugged')
" Shorthand notation; fetches https://github.com/junegunn/vim-easy-align
Plug ‘junegunn/vim-easy-align’
" On-demand loading
Plug ‘scrooloose/nerdtree’, { ‘on’: ‘NERDTreeToggle’ }
Plug ‘tpope/vim-fireplace’, { ‘for’: ‘clojure’ }
" Using a non-default branch
Plug ‘rdnetto/YCM-Generator’, { ‘branch’: ‘stable’ }
" Initialize plugin system
call plug#end()
然后在vim执行:PlugInstall
安装插件
pathogen
manage your runtimepath
pathogen是这几个插件中最简洁的, 加载插件只需要一条函数调用,而其他几个插件管理器 在声明使用插件时至少需要调用和插件数量相等的指令。
优点:
- 最简洁
- 自动从目录加载插件
- 为插件生成help tags
缺点:
- 不支持按需加载插件
- 需要手动安装、更新、卸载插件
pathogen 安装:
mkdir -p ~/.vim/autoload ~/.vim/bundle &&
curl -LSso ~/.vim/autoload/pathogen.vim
https://tpo.pe/pathogen.vim
pathogen 使用:
在.vimrc文件中 filetype plugin indent on 之前的任何地方添加:
call pathogen#infect()
以安装NERDTree插件为例:
进入~/.vim/bundle/目录,执行:
git clone http://github.com/scrooloose/nerdtree.git
下载完成后,看到目录~/.vim/bundle/下多出一个显得nerdtree目录,即表明NERDTree插件安装完成。
如要卸载NERDTree插件,只需将nerdtree目录删除即可。
Vundle
优点:
Vundle 的优点 vim-plug都有?[2]
缺点:
- 不支持按需加载插件,Vim启动耗时长
- 不支持异步加载插件
Vundle 安装:
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
Vundle 使用:
在.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()
" let Vundle manage Vundle, required
Plugin ‘gmarik/Vundle.vim’
" plugin on GitHub repo
Plugin ‘tpope/vim-fugitive’
" more Plugin commands
" …
call vundle#end() " required
filetype plugin indent on " required
然后在vim执行:PluginInstall
安装插件
最后,我用vim-plug,省心~