Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Use Pathogen and Git to manage your Vim plugins.


Use Pathogen and Git to manage your Vim plugins.

End of Life

It's official. This has been a great run, thanks to everyone who supplied patches. Now I'm watching Vim Mode Plus with great interest.

Nothing has changed in the code, vim-update-bundles should work as well as it always has.


To install plugins, put lines like this in your ~/.vimrc:

Bundle 'jQuery'                                  #
Bundle 'scrooloose/nerdtree'                     #
Bundle 'git://'     # Full URL to the repo to clone

When you run ./vim-update-bundles, your plugins will be installed and ready for use.

Type :help bundles from within Vim to show the list of plugins that you have installed. Hit Control-] on the bundle's name to jump to its documentation. Also look at :help bundle-log.

It works with ~/.dotfiles and Git submodules.

If you're not already using Vim, just run ./vim-update-bundles and a full environment will be set up for you.


One of:

  • git clone: git clone
  • rubygem: gem install vim-update-bundles
  • no install: curl -s | ruby


Just run ./vim-update-bundles to install and remove plugins to match the ones named in your ~/.vimrc.

  • -n --no-updates Adds and deletes bundles but doesn't update them. This prevents vim-update-bundles from laboriously scrubbing through every bundle in your .vimrc when you just want to make a quick change.

  • -v --verbose prints more information about what's happening. Pass multiple -v -v -v for more verbosity.

  • --vimdir-path=path specifies the .vim directory that will contain your autoload and bundles.

  • --vimrc-path specifies the location of your ~/.vimrc file.

  • --help prints usage information.

Submodules and dotfiles are autodetected. Run with --verbose to ensure that everything is being detected correctly.

Specifying Plugins

vim-update-bundles reads the plugins you want installed from comments in your ~/.vimrc. Here are the directives it recognizes:


Any line of the format " Bundle: URL [REV] (not case sensitive) will be interpreted as a bundle to download. URL points to a Git repository and REV is an optional refspec (Git branch, tag, or hash). This allows you to follow a branch or lock the bundle to a specific tag or commit, i.e.:

Bundle: v1.0

If the script lives on vim-scripts or GitHub, the URL can be abbreviated:

Bundle: tpope/vim-endwise    ->
Bundle: endwise.vim          ->

vim-update-bundles never deletes files. When you uninstall a plugin, it moves it to the .vim/Trashed-Bundles directory.


To execute a shell command every time vim-update-bundles is run, specify a BundleCommand. You can have any number of BundleCommands in your .vimrc. The following would install Command-T and run its rake make:

" Bundle:
" BundleCommand: cd command-t && rake make


If you have directories in ~/.vim/bundle that you'd like vim-update-bundles to ignore, mark them as static.

 " Static: my-plugin


vim-update-bundles also supports Vundle-style directives. This allows you to use either tool to manage your bundles -- use whichever is more convenient at the time.

Location of .vim and .vimrc

vim-update-bundles will use ~/.vim and ~/.vimrc if they exist. Since this is also what Vim uses, most people can stop reading here.

If ~/.dotfiles exists, vim-update-bundles will look for .dotfiles/vim and .dotfiles/vimrc.

If your dotfiles are in a custom place, you can specify --vimdir-path and --vimrc-path on the command line or in vim-update-bundles.conf.

If vim-update-bundles still can't find a Vim environment, it will create one for you. It creates the ~/.vim directory, downloads a default ~/.vimrc, then installs the default set of plugins.

If you're unsure which vimdir_path and vimrc_path are being used, vim-update-bundles --verbose will tell you.

Runtime Path

If you want to use Pathogen, place this at the top of your .vimrc:

runtime bundle/vim-pathogen/autoload/pathogen.vim
" Bundle: tpope/vim-pathogen
call pathogen#infect()

Or, if you want to use Vundle, use this:

set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" Tell Vim to ignore BundleCommand until vundle supports it
com! -nargs=? BundleCommand
Bundle ''

If you're wondering why you're being asked to delete pathogen.vim, it's because of a big improvement to the way vim-update-bundles works. Now, instead of downloading Pathogen and then never updating it, vim-update-bundles will use the plugin manager you specify in your .vimrc and keep it up to date with the rest of your plugins.


This software is released under the MIT License.


Vundle by gmarik is starting to look pretty awesome.

Additionally, see's tools page.

Something went wrong with that request. Please try again.