Vim script management system

Suraj N. Kurapati


Inspired by pathogen and GLVS, I put together a very simple system for managing Vim scripts (known as bundles henceforth) downloaded from http://www.vim.org/scripts/.

Bundles are kept in their own self-contained subdirectories inside the ~/.vim/bundle/ directory and they are added dynamically to Vim’s runtimepath by the following activation code (which has since evolved into the unbundle.vim plugin) in the ~/.vimrc file:

" register bundles found in the runtimepath
let s:bundles = tr(globpath(&runtimepath, 'bundle/*/.'), "\n", ',')
let s:afters = tr(globpath(s:bundles, 'after/.'), "\n", ',')
let &runtimepath = join([s:bundles, &runtimepath, s:afters], ',')

" activate ftplugin/ scripts inside bundles
filetype off
filetype plugin indent on

Bundles are installed and upgraded by the get.rb script (which has since evolved into the update script) which looks for ~/.vim/bundle/*.get files that specify their respective bundles’ script_id numbers taken from their download URLs:

http://vim.org/scripts/script.php?script_id=NUMBER

Thus I am able to easily install, upgrade, and remove bundles. See my personal Vim configuration for further details.


Updates