简约的Vim 插件管理器:vim-plug

jopen 10年前

vim-plug 是一个小型的 vim 插件管理器。

简约的Vim 插件管理器:vim-plug

Pros.

  • Easier to setup: Single file. No boilerplate code required.
  • Easier to use: Concise, intuitive syntax
  • Super-fast parallel installation/update (requires+ruby)
  • On-demand loading to achievefast startup time
  • Post-update hooks
  • Can choose a specific branch or tag for each plugin
  • Support for externally managed plugins

Usage

Download plug.vim and put it in ~/.vim/autoload

mkdir -p ~/.vim/autoload  curl -fLo ~/.vim/autoload/plug.vim \      https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Edit your .vimrc

call plug#begin('~/.vim/plugged')    " Make sure you use single quotes  Plug 'junegunn/seoul256.vim'  Plug 'junegunn/vim-easy-align'    " On-demand loading  Plug 'scrooloose/nerdtree', { 'on':  'NERDTreeToggle' }  Plug 'tpope/vim-fireplace', { 'for': 'clojure' }    " Using git URL  Plug 'https://github.com/junegunn/vim-github-dashboard.git'    " Plugin options  Plug 'nsf/gocode', { 'tag': 'go.weekly.2012-03-13', 'rtp': 'vim' }    " Plugin outside ~/.vim/plugged with post-update hook  Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': 'yes \| ./install' }    " Unmanaged plugin (manually installed and updated)  Plug '~/my-prototype-plugin'    call plug#end()
Reload .vimrc and :PlugInstall to install plugins.

Commands

Command Description
PlugInstall [name ...] [#threads] Install plugins
PlugUpdate [name ...] [#threads] Install or update plugins
PlugClean[!] Remove unused directories (bang version will clean without prompt)
PlugUpgrade Upgrade vim-plug itself
PlugStatus Check the status of plugins
PlugDiff See the updated changes from the previous PlugUpdate

Plug options

Option Description
branch/tag Branch or tag of the repository to use
rtp Subdirectory that contains Vim plugin
dir Custom directory for the plugin
do Post-update hook (string or funcref)
on On-demand loading: Commands or <Plug>-mappings
for On-demand loading: File types
frozen Do not install/update plugin unless explicitly given as the argument

Global options

Flag Default Description
g:plug_threads 16 Default number of threads to use
g:plug_timeout 60 Time limit of each task in seconds
g:plug_retries 2 Number of retries in case of timeout
g:plug_window vertical topleft new Command to open plug window
g:plug_url_format https://git::@github.com/%s.git printf format to build repo URL

Keybindings