https://github.com/junegunn/vim-plug.git

Junegunn Choi f067394783 Remove dependency resolution section (link to wiki) 12 years ago
gif 3b0cf33301 Add gif for Plugfile example 12 years ago
test abfb0e74e4 Update formatting of error messages 12 years ago
README.md f067394783 Remove dependency resolution section (link to wiki) 12 years ago
plug.png bdb4ebae1a plug.png 12 years ago
plug.vim abfb0e74e4 Update formatting of error messages 12 years ago

README.md

vim-plug

A single-file Vim plugin manager.

Somewhere between Pathogen and Vundle, but with faster parallel installer.

Pros.

  • Easier to setup
  • Parallel installation/update (requires +ruby)
  • Smallest possible feature set
  • Dependency resolution using Plugfile (experimental)

Cons.

  • Everything else

Usage

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

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

Edit your .vimrc

call plug#begin('~/.vim/plugged')

Plug 'junegunn/seoul256.vim'
Plug 'junegunn/vim-easy-align'
" Plug 'user/repo1', 'branch_or_tag'
" Plug 'user/repo2', { 'rtp': 'vim/plugin/dir', 'branch': 'devel' }
" Plug 'git@github.com:junegunn/vim-github-dashboard.git'
" ...

call plug#end()

Reload .vimrc and :PlugInstall to install plugins.

Plugin directory

If you omit the path argument to plug#begin(), plugins are installed in plugged directory under the first path in runtimepath at the point when plug#begin() is called. This is usually ~/.vim/plugged (or $HOME/vimfiles/plugged on Windows) given that you didn't touch runtimepath before the call.

Commands

Command Description
PlugInstall [#threads] Install plugins
PlugUpdate [#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

Options for parallel installer

Flag Default Description
g:plug_threads 16 Default number of threads to use
g:plug_timeout 60 Time limit of each task in seconds

Example: A small sensible Vim configuration

call plug#begin()
Plug 'tpope/vim-sensible'
call plug#end()

Dependency resolution

See Dependency Resolution.

Articles

Troubleshooting

Plugins are not installed/updated in parallel

Your Vim does not support Ruby interface. :echo has('ruby') should print 1. In order to setup Vim with Ruby support, you may refer to this article.

Vim: Caught deadly signal SEGV

If your Vim crashes with the above message, first check if its Ruby interface is working correctly with the following command:

:ruby puts RUBY_VERSION

If Vim crashes even with this command, it is likely that Ruby interface is broken, and you have to rebuild Vim with a working version of Ruby. (brew remove vim && brew install vim or ./configure && make ...)

If you're on OS X, one possibility is that you had installed Vim with Homebrew while using a Ruby installed with RVM or rbenv and later removed that version of Ruby.

Please let me know if you can't resolve the problem. In the meantime, you can set g:plug_threads to 1, so that Ruby installer is not used at all.

Regarding feature request

You may submit a request for a new feature by creating an issue. However, please be minded that this is an opinionated software and I want to keep the feature set as small as possible. So I may not agree with you on the necessity of the suggested feature. If that happens, I suggest the following options.

  1. Check out Vundle or NeoBundle. They offer broader feature sets.
  2. Create a fork of this project and let it be your own plugin manager. There's no need for us to have a single canonical branch.