Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Sane Vim Plugin Management with Vundle (charlietanksley.net)
56 points by 1336 on May 11, 2011 | hide | past | favorite | 15 comments


Not arguing with his main points, but updating submodules for pathogen is easier than he says.

To update submodules do (in the "main dir" of the git repo):

   git submodule foreach git pull


Post author here. You're dead on about this. I could try to turn this into another reason why git + pathogen is lacking as a plugin management system (you have to know a lot about git!), but that is weak, so a better tack is to just agree.

Question: is there an equally easy way to delete submodules? They're easy as pie to add, and you rightly point out that they are easy to update, but I never figured out an easy way to remove them. I was likely missing something, though.



That assumes that all the plugins are installed via Git, right?


It updates only those plugins that are installed as git submodules yes. Most recent bundles have git repos, but if they don't

    https://github.com/vim-scripts
mirrors all plugins hosted on vim.org as clonable repos.


did not know about this... this is official awesome


I truly prefer to use git-subtree with pathogen.

1. add a repo:

    $ git remote add remote-vim-surround https://github.com/tpope/vim-surround.git
2. git-subtree:

    $ git subtree add --prefix=vim/bundle/vim-surround remote-vim-surround master
3. occasional updates:

    $ git subtree pull --prefix=vim/bundle/vim-surround remote-vim-surround master
The advantage of this method is that I can keep my config directory in git, pull it onto a new machine, and not have to update any submodules. It's just all there.


Interesting. I just recently started using Pathogen, and it is a great improvement, but I do agree that updating plugins is still a chore.

How well does Vundle work in Windows? And how does it organize the plugins?


The plugin author discusses that here: https://github.com/gmarik/vundle/wiki/Vundle-for-Windows.


Updating your plugins (when using pathogen) is super-easy if they're stored in git somewhere.

    Dir.glob("#{ENV['HOME']}/.vimbundles/*").each do |d|
      next unless File.directory?(d)
      puts "updating #{d}"
      `cd #{d}; git pull --rebase; cd -`
    end
in ruby, would be easy enough in bash/zsh/python/perl/ as well.

see also: https://github.com/hashrocket/dotmatrix/blob/master/bin/vimb...


It baffles me how underdeveloped the git-submodule command is. I've never enjoyed that aspect of Vim bundle management, and this looks like a refreshing alternative.

Is submodule-based package management gone for good? I'm going to wait and see.

One thing is clear: the author understands the current Vim ecosystem and knows exactly what pain points still exist. He doesn't diminish how great Pathogen is but has come up with a way to make package management seamless, and for that reason, I'm going to give this a try.


I've been using (and loving) vim-update-bundles for about 5 months now. I'm not sure how the two compare in terms of features, but the core functionality is the same.

https://github.com/bronson/vim-update-bundles


I'm using pathogen with 'braid' to manage git based bundles.

For example to add the rails plugin I can do:

    braid add git://github.com/tpope/vim-rails.git bundle/vim-rails
then I can do `braid update bundle/vim-rails` to update just that or `braid update` to update all


I switched to using Vundle this morning (before seeing the article). It is an excellent way to manage VIM plugins.


...There is a grow­ing con­sen­sus about Vim users that Pathogen is the best way to man­age scripts. The idea behind pathogen is a fan­tas­tic one (to be hon­est, all of Tim Pope’s scripts are well-thought out and exe­cuted; pathogen being no exception)...

You can get past the "Javascript required" message by disabling CSS (e.g. Web Developer Toolbar extension).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: