vim 插件管理器:vim-plug
jopen
9年前
vim-plug 是一个小型的 vim 插件管理器。
Pros.
- 更易于安装: 只有一个文件. No boilerplate code required.
- 易于使用: Concise, intuitive syntax
- Super-fast parallel installation/update (with any of+python,+python3,+ruby, or Neovim)
- Creates shallow clones to minimize disk space usage and download time
- On-demand loading for faster startup time
- Can review and rollback updates
- Branch/tag support
- Post-update hooks
- 支持外部管理插件
安装
Download plug.vim and put it in ~/.vim/autoload
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
用法
Add a vim-plug section to your .vimrc:
- Begin the section withplug#begin()
- List the plugins withPlugcommands
- plug#end()to add the plugins to&runtimepath
Example
call plug#begin('~/.vim/plugged') " Make sure you use single quotes Plug 'junegunn/seoul256.vim' Plug 'junegunn/vim-easy-align' " Group dependencies, vim-snippets depends on ultisnips Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets' " 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': 'v.20150303', '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' " Add plugins to &runtimepath call plug#end()
Reload .vimrc and:PlugInstallto 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 |
PlugSnapshot [output path] | Generate script for restoring the current snapshot of the plugins |
Plugoptions
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 update unless explicitly specified |
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 (Ruby & Python) |
g:plug_retries | 2 | Number of retries in case of timeout (Ruby & Python) |
g:plug_shallow | 1 | Use shallow clone |
g:plug_window | vertical topleft new | Command to open plug window |
g:plug_url_format | https://git::@github.com/%s.git | printfformat to build repo URL |
Keybindings
- D-PlugDiff
- S-PlugStatus
- R- Retry failed update or installation tasks
- U- Update plugins in the selected range
- q- Close the window
- :PlugStatus
- L- Load plugin
- :PlugDiff
- X- Revert the update