
vim-plug
A minimal plugin manager for Vim and Neovim that installs plugins from git.
- Stars
- 35.8k
- Forks
- 1.9k
- Licence
- MIT
- Language
- Vim Script
- Last update
- 22 days ago
- Type
- Dev tool
What it is
vim-plug is a plugin manager for the Vim and Neovim text editors. You list the plugins you want in your editor configuration file, and vim-plug downloads and updates them for you with simple commands like PlugInstall and PlugUpdate. It is distributed as a single file with no dependencies.
- Install a set of Vim plugins from GitHub with one command after listing them in your config
- Update all installed plugins with PlugUpdate and review changes with PlugDiff
- Remove plugins you no longer list using PlugClean
- Load a plugin only when a specific command runs or a file type is opened
Great for
- Vim or Neovim users who want to manage plugins without a heavy setup
- People who want to pin plugins to a branch, tag, or commit
- Users who want plugins to load on demand to speed up startup
- People who prefer a small, simple tool with minimal configuration syntax
Not ideal for
- People who do not use Vim or Neovim, since it only works inside those editors
- Users who need plugins installed from sources other than git, because the README describes git-based installation
- Users who want a built-in package system instead of a third-party tool
How to get it
- 1
See the README
You'll need: Vim or Neovim · git
Download plug.vim to the autoload directory on Unix (Vim)
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim - 2
Run it
- Add a call to plug#begin() and plug#end() to your ~/.vimrc (or ~/.config/nvim/init.vim for Neovim).
- Inside that section, list plugins with Plug lines, such as Plug 'tpope/vim-sensible'.
- Reload the file or restart Vim.
- Run :PlugInstall to install the plugins.
- 3
Get the most out of it
- Use the 'on' and 'for' options to load plugins only when needed and speed up startup
- Pin plugins to a tag with { 'tag': '*' } or to a branch with { 'branch': ... }
- Use the 'do' option to run a command after a plugin installs or updates
- Use :PlugDiff to review changes before or after updating
Downloads
Strengths
- Single file with no dependencies, which the README describes as easy to set up
- Parallel installation and updates, with shallow clones to save disk space and download time
- Supports branches, tags, commits, and post-update hooks
Trade-offs
- The README does not state the exact versions of Vim or Neovim supported beyond general claims of broad compatibility
- Relies on git being available for installing plugins
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| vim-plug (this) | 35.8k | Dev tool | beginner | 22 days ago | Vim or Neovim users who want to manage plugins without a heavy setup |
| fzf | 83.9k | Dev tool | beginner | 8 days ago | Command-line users who often search file names or command history |
| core | 22.8k | Dev tool | intermediate | 1 months ago | Emacs users who want a curated starting point without building everything from scratch |
| coc.nvim | 25.1k | App | intermediate | 10 days ago | Vim or Neovim users who want autocompletion and language features similar to VS Code |
| vim-airline | 18k | App | beginner | 22 days ago | Vim users who want a clearer status bar without heavy configuration |
| Vim | 15.2k | App | beginner | 6 days ago | Developers who already know Vim and want its keybindings in VS Code |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.