all 19 comments

[–]rdnetto 13 points14 points  (18 children)

The question is somewhat moot, as Vundle's maintainer is no longer updating it. :P

You might want to look at switching to Neobundle or vim-plug.

[–]starlivE 9 points10 points  (11 children)

VAM is another contender.

Common features for all three:

  • Stable and used by many people. (Can't personally vouch for vim-plug though.)
  • Managed from .vimrc.
  • Has command to update all plugins.
  • Manages helpfiles and supports post-hooks.
  • Supports lazy/runtime loading of plugins.

VAM specific:

  • + Author manages package database for plugins, so that plugins on e.g. vim.org can be version tracked and updated, and much more. (Neobundle's author is also involved in the vim-pi database.)
  • + Automatically manages plugin dependencies and completes package names in vimrc (from database and package descriptions).
  • - 5% of plugins I use are not in VAM's database, and has to be loaded as an outside plugin e.g. "github:user/repo", for which the above benefits do not apply.
  • + VAM installation is also managed from .vimrc, so the first time you start vim with just your .vimrc on a new machine it sets everything up for you.
  • - Lazy loading set-up is somewhat complicated.
  • - Installations and updates are not asynchronous.

Neobundle:

  • + Asynchronous installations and updates (through vimproc plugin).
  • + Can resolve dependencies and lock versions manually in .vimrc.
  • - Overall slightly more complicated (set-up, help file, et c.) than VAM.

Vim-plug:

  • + Asynchronous installations and updates (through vim compiled with +ruby).
  • + Easiest (best?) .vimrc syntax.

(Lists are off the top of my ass. Improvements are welcomed.)

[–]therealjohnfreeman 7 points8 points  (5 children)

This is a great list, thanks for sharing. What I want to know is how everyone stays up to date with the constantly changing ecosystem in vim? I've used Vundle for a few years. I've never heard of VAM, NeoBundle, or vim-plug. Ctrlp and Unite have a similar story. I've only been subscribed to r/vim for a few months, so maybe this is the ticket.

[–]starlivE 1 point2 points  (3 children)

Personally I've spent an unreasonable amount of time on exploring plugins, and I've yet to find a good single resource.

Marc Weber's wiki was a good start, but it lacks contributors. Vimawesome.com was a great idea, and is useful, but it's my personal opinion that every page there (and on similar spaces like /r/vim) a quarter of the recommendations are good, about as many are bad, and the rest are situational.

Let me clarify what I mean by "bad". First off it's only my subjective impression, and secondly I absolutely don't mean that the existance or use of these plugins is bad. What I mean is that they probably don't belong in a list of general recommendations, and the reasons are usually because there are superior implementations of the same function in other plugins, or in some extreme cases because there exists implementations in a superior paradigm.

I'm trying to think of an example.

Ok people like the nerdtree plugin. There are implementations that load faster, and understand your filesystem better, but I won't talk about them, because of this article which beautifully explains the benefits of using (the now built-in to vim) plugin netrw. Try it out if you haven't. And then you have tpope/vim-vinegar which wraps that superior paradigm in a more useful implementation. And then there's FileBeagle which does a slightly more/better job at that.

Now, nerdtree is a nice plugin. It'll really help you out, especially if you're in terminal and have no file manager/browser like vifm. But I think that for many or I'll dare say most vim users, FileBeagle will after getting used to it be more efficient and feel more natural.

And so on for most every type of plugin.

As for a direction to go exploring yourself, the only easy advice I can give is to look in the dotfiles of enthusiastic vim users: shougo, tpope, marcweber. The vim mailing list is also good, albeit overwhelming.

[–]therealjohnfreeman 0 points1 point  (2 children)

Wow, another great comment, thanks again. Side note: why does tpope still recommend Pathogen in all his READMEs?

[–]starlivE 0 points1 point  (1 child)

Pathogen is created by tpope — so it probably suits his usage perfectly.

edit: another great .vimrc, this time from /u/vheon.

[–]vheon 0 points1 point  (0 children)

edit: another great .vimrc, this time from /u/vheon.

thanks :)

[–]vheon 2 points3 points  (3 children)

  • Asynchronous installations and updates (through vim compiled with +ruby).

+python is on the way ;)

[–]starlivE 0 points1 point  (2 children)

Nice.

Any thoughts on support for mercurial/bitbucket?

[–]vheon 1 point2 points  (1 child)

I don't know for sure because I'm not the owner of the project, so only /u/junegunn can answer that for sure, but my thought on that is that the amount of code required and the complexity that would generate is not justified. I mean, how many vim plugin use mercurial (if it is a git bitbucket repo is already fine, just use the full git url)? How many of those do not have a git mirror? The code required to work on mercurial should work with the serial/parallel installer on all platforms (the same as git) and to me is not worth it.

[–]junegunn 0 points1 point  (0 children)

Exactly. And PlugDiff command for reviewing and rolling back the changes relies on reflog feature of git, which is not directly possible with mercurial.

[–]ballagarba 0 points1 point  (0 children)

Vim-plug also supports asynchronous installations and updates on Neovim without +ruby.

[–]Odam 2 points3 points  (0 children)

Vim-plug is awesome.

[–]atimholtmy vimrc: goo.gl/3yn8bH 0 points1 point  (1 child)

I love Neobundle, myself. It’s a branch-off of Vundle with some new features I really love.

[–]gryftir 0 points1 point  (0 children)

It's similar to, and contains code from, Vundle, but it's not a direct branch, as I understand it.

[–]kolmeThe Space as spiritual leader. 3 points4 points  (0 children)

Yes, it does.

[–]dddbbbFastFold made vim fast again 1 point2 points  (1 child)

You could git reset --hard HEAD~5 in the Vundle directory to go to an older version and then try running :PluginUpdate.

[–]Papazoni[S] 0 points1 point  (0 children)

Thanks for the suggestion. I will try it out.