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

Junegunn Choi 214b4fb6fa Prevent serialization due to early termination of threads 12 ani în urmă
gif 96463b613f New screenshot 12 ani în urmă
README.md a9d5912b4d Prototype implementation of dependency resolution (#2) 12 ani în urmă
plug.vim 214b4fb6fa Prevent serialization due to early termination of threads 12 ani în urmă

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()

Plug 'junegunn/seoul256'
Plug 'junegunn/vim-easy-align'
" Plug 'user/repo', 'branch_or_tag'
" Plug 'git@github.com:junegunn/vim-github-dashboard.git'
" ...

call plug#end()

Then :PlugInstall to install plugins.

Plugin directory

By default, 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. You can explicitly set the location of the plugins with plug#begin(path) call.

Commands

Command Description
PlugInstall [#threads] Install plugins
PlugUpdate [#threads] Install or update plugins
PlugClean Remove unused directories
PlugUpgrade Upgrade vim-plug itself
PlugStatus Check the status of plugins

(Default number of threads = g:plug_threads or 16)

Dependency resolution

If a Vim plugin specifies its dependent plugins in Plugfile in its root directory, vim-plug will automatically source it recursively during the installation.

A Plugfile should contain a set of Plug commands for the dependent plugins.

I've created two dummy repositories with Plugfiles as an example to this scheme.

  • junegunn/dummy1
    • Plug 'junegunn/vim-scroll-position'
    • Plug 'junegunn/dummy2'
  • junegunn/dummy2
    • Plug 'junegunn/Zenburn'
    • Plug 'junegunn/jellybeans.vim'
    • Plug 'junegunn/dummy1'
    • (Circular dependencies are ignored)

If you put Plug 'junegunn/dummy1' in your configuration file, and run :PlugInstall,

  1. vim-plug first installs dummy1
  2. And sees if the repository has Plugfile
  3. Plugfile is loaded and vim-plug discovers dependent plugins
  4. Dependent plugins are then installed as well, and their Plugfiles are examined and their dependencies are resolved recursively.

Articles

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.