Emacs 24 looks like it will have a package manager. What package management options are there for Vim?
-
1What is a package manager in this context? Something like VimExplorer? – Matt Ball Mar 16 '10 at 21:50
-
Something which will install and manage third party plugins from a central repository. – ntimes Mar 16 '10 at 21:53
-
1well, vim has a central repo (vim.org), a package system (vimballs), and scripts which check whether you've got the latest & the greatest (several of them, don't recall names now) ... what more do you want ? :-) – Rook Mar 16 '10 at 23:33
-
3I wasn't aware of vimballs, and correct me if I'm wrong but it still appears you need to a) visit the site, b) download the vba file - if it exists, which doesn't appear to be the case for most plugins - and c) only then run vimballs. Not exactly what I had in mind (cf RubyGems) :) – ntimes Mar 17 '10 at 02:11
-
Voting to close as tool rec. On vi: http://vi.stackexchange.com/questions/388/what-is-the-difference-between-the-vim-package-managers – Ciro Santilli OurBigBook.com Oct 06 '15 at 11:32
7 Answers
I am now using VimPlug for my own Vim setup, and I definitely recommend it. Installation is very simple, and it is fast, pretty and effective!
I used to recommend Vundle in this answer. But Vundle is no longer maintained, and there are better alternatives.

- 3,124
- 1
- 22
- 27
-
The author stopped maintaining vundle http://gmarik.info/blog/2014/02/04/why-i-stopped-contributing-to-vundle . you can still see contributions on github but may be someone more knowledgeable can comment on the future of vundle. – kirill_igum Jun 23 '14 at 21:59
-
He seems slightly annoyed that NeoBundle mostly just copied his code instead of making a fork.. But if he no longer maintains it, maybe NeoBundle will take over? – Jostein Jun 25 '14 at 23:50
-
The GitHub repo seems active to me. Also, in the comments of the link in your update, it seems like someone stepped up to help. – Aug 10 '14 at 16:37
-
My pain with Vundle is that it only uses git (primarily github projects) as the source. However when you search for a wellknown project there, e.g., TagList, you get a bunch of "mirrors" from the official vim plugin site. I don't trust any of those for security. Therefore I keep using the good old Pathogen with [my own github maintained bundle directory](https://github.com/puzzl3r/vim-settings-kfl). – KFL Aug 20 '14 at 18:15
-
@KFL VAM has a [plugin index](https://bitbucket.org/vimcommunity/vim-pi), which theoretically has the most canonical source for each plugin, whether in a git repo, or on vim.org. It's community maintained, but there's only one repo for each plugin, so that's a start. (And, you can update it yourself, as the index is a git repo.) – jpaugh Feb 15 '17 at 04:10
Plugin management for vim used to be a pain in the traditional way by spreading plugin files across the whole personal vim runtime directory, eg. ~/.vim
for *nix system. Once a plugin is installed, it is hard to be updated because there is no easy way to remove the outdated plugin files which is a necessary step.
At the beginning, I'd like to list my personal requirements about how a fine plugin management tool should be:
- shall be written in pure VimL
- shall install plugins into their own directory
- shall autoload plugins when vim starts, nice to load as needed
- shall have a builtin method of installing, updating and removing plugins
- nice to have a builtin method of search needed plugins
- shall be able to declare needed plugins in a file
- nice to have dependency solving mechanism
There are lots of implementations out there(Vim-Scripts.org has a comprehensive summary of all the available tools), I will only talk about several major tools by their creating order.
vimball was the first attempt to solve the problem and actually had been a half-official solution that lots of plugins shipped with a *.vba
package together for a long time. Combined with GetLatestVimScripts, this formed the traditional way for the vim plugin management.
Even though, the problem still remained until Tim Pope's pathogen(Github Repo), which places each plugin into its own directory and loads them at the startup by modifying the "rtp(runtimepath)" of the vim, showed up. This is great progress - combined with vim-scripts.org hosted by git/github and other tools(eg. vimmer), it forms the modern way of managing vim plugins. There are lots of articles and videos talking about this topic.
As a plugin that manage the plugins, pathogen is still missing some core functionalities like searching, install, updating and removing the plugins. As a result, VAM(Vim-Addon-Manager)(Github Repo) stepped out. VAM provides almost everything needed to be plugin manager: places plugin files in its own directory, loads plugins at vim startup, searching/installing/updating/removing plugins in ex command line, written in pure VimL, maintains its own plugins central info database, even resolves the plugin dependencies. It seems VAM should be the one that we need as a full-featured vim plugin manager, but from my point of view, the approach VAM takes is a little bit inelegant and sometimes over-designed. Though it is still a wonderful plugin and worth using.
Then, there came Tom Link's tplugin(Github Repo) which improved pathogen by having plugins only loaded when related commands or functions are called, similar to AsNeeded. Also, it has some sort of dependency solving mechanism which seems nice.
Finnaly, Gmarik created Vundle (Github Repo) which is a successor of Tim Pope's pathogen with inspiration from Ruby's Bundler, it provides a better user interface and additional management functionality. Vundle to Vim is much similar as Bundler to a Ruby Project. By having needed plugins declared in vimrc, vundle handles all the rest, including installing/updating and removing plugins, through the ex command line interface. Most importantly, vundle is implemented in pure VimL. With the help of vundle, managing vim configuration across several computers could be done with just a simple vimrc file. As a modern plugin management tool, vundle relies on Git and can install plugin directly from Github. Vundle also provides a fancy interactive interface for searching and installing plugins.
Vundle does not fully fulfill my requirements though, but it does head to the right direction, which seems to be a good start point for me.
Here are a discussion and another comparison between vim plugin managers by VAM's author MarcWeber.
-
2following this great answer, [Neobundle](https://github.com/Shougo/neobundle.vim) seems the logical evolution from Vundle – Waiting for Dev... May 02 '13 at 10:00
-
Great to have some history of how vim package managers have evolved - very useful, and glad I'm using Vundle as I don't have complex requirements. – RichVel Mar 13 '16 at 07:49
-
@RichVel, Conversely, I'm glad I'm using VAM, as I have one *very* complex requirement: I want it to be very simple to use day-to-day. It's even pretty easy to add new plugins, on the off-chance that they're not all ready in the index ([vim-pi](https://bitbucket.org/vimcommunity/vim-pi)) – jpaugh Feb 15 '17 at 04:08
There's also pathogen.vim
http://www.vim.org/scripts/script.php?script_id=2332
Although its not exactly what you are asking for it provides a means to manage checkouts from your github's and bitbucket's.
This is good as it separates the plugin's directory structure. So you can checkout a repository of the plugin and get a proper version control rather than rely on the maintainer to update the code. Also it doesn't rely on the plugin author to set up/package as required by the other options cited.
There are some other plugins on vim.org that perform this task although I can't find them at the moment

- 11,667
- 2
- 26
- 25
I'm using a hand-crafted setup for now, but I keep telling myself to give this a shot sometime (the links all have to do with the same plugin):
- vim-addon-manager: manage and update plugins easily; a plugin by Marc Weber (@ vim.org)
- GitHub profile of Marc Weber; he's got a number of v-a-m-related repos
- Vim-plugin-manager @ Vim wiki -- the name of the page is different, but actually the same plugin is meant
Once again, I haven't actually tried this myself yet, but it certainly looks promising.

- 83,634
- 13
- 201
- 212
All these answers seem pretty old. As described in this answer to a similar question,
Both Vim 8.0 and Neovim have their own built-in package manager
There is no need at all for another plugin manager.
I've been using it for a year or two and it seems simple and easy to me.
Here are a few resources about its advantages and how to use it:

- 2,943
- 3
- 31
- 43
-
1Kind of amazing that this answer hasn't received more upvotes. :/ – Jesse Adelman Dec 14 '20 at 21:48
-
1
Vim.org + Vimballs + GetLatestVimScripts is preffered built in way to manage vim plugins at the moment.
:h GetLatestVimScripts
The bad things about it:
- doesn't support Windows (GetLatestVimScripts uses wget AFAIR)
- vim.org has a lot of plugins that are not GLVS and Vimball aware.

- 6,192
- 2
- 29
- 28
-
8You can install wget on Windows if you've been able to install Vim on Windows :) – wRAR Mar 17 '10 at 06:48

- 44,284
- 53
- 191
- 263
-
4
-
From the NeoBundle readme: "Active developement on NeoBundle has stopped. The only future changes will be bug fixes." – icc97 Sep 07 '17 at 14:02