VRundler

Description

vrundler is a simple tool for managing your vim plugin management using ruby.

Installation

gem install vrundler

Usage and documentation

Create a configuration file for VRundler that allows you to specify the bundles you want vim to use. The following code is a configuration file that uses all of the features of vrundler:

# Specify the path where you want your bundles installed
bundles_dir '/Users/developwithpassion/.vim_runtime/bundle'

# A github group allows you to specify a github user name
github 'vim-scripts' do

# A bundle is a named vim plugin repo for the user, you can specify
# multiple by separating each plugin with a comma, this is useful if you are
# getting multiple plugins from a single author, you can also specify each plugin
# with separate calls to: bundle '[PLUGIN]'
  bundle 'dbext.vim',
         'vimgrep.vim'
end

github :altercation do
  bundle 'vim-colors-solarized'
end

github :benmills do
  bundle 'vimux'
end

github :developwithpassion do
  bundle 'TwitVim'
end

# A symlink bundle is just a vim plugin that is on your local file system somewhere 
# and you want it symlinked into your vim bundle folder, the first argument is 
# the name the symlink will be given in your plugin folder
symlink :dwp_vim_general, '/to_backup/repositories/open_source/dwp_vim_general'

github :ecomba do
  bundle 'vim-ruby-refactoring'
end

github :elzr do
  bundle 'vim-json'
end

github :ervandew do
  bundle 'supertab'
end

github :nanotech do
  bundle 'jellybeans.vim'
end

github :kana do
  bundle 'vim-fakeclip'
end

github :kien do
  bundle 'ctrlp.vim'
end

github :MarcWeber do
  bundle 'vim-addon-mw-utils'
end

github :scrooloose do
  bundle 'syntastic' , 
    'nerdtree'
end

github :jistr do
  bundle 'vim-nerdtree-tabs'
end

github :sukima do
  bundle 'xmledit'
end

github :timcharper do
  bundle 'textile.vim'
end

github :thoughtbot do
  bundle 'vim-rspec'
end

github :pangloss do
  bundle 'vim-javascript'
end

github :SirVer do
  bundle 'ultisnips'
end

github :tomtom do
  bundle 'tcomment_vim', 
    'tlib_vim'
end

github :tpope do
  bundle 'vim-cucumber', 
    'vim-endwise', 
    'vim-fugitive', 
    'vim-git', 
    'vim-haml', 
    'vim-markdown', 
    'vim-rails', 
    'vim-repeat',
    'vim-surround', 
    'vim-vividchalk'
end

github :Lokaltog do
  bundle 'vim-distinguished'
end

github :Valloric do
  # This demonstrates configuring the bundle using a block, in this 
  # example I am chdir'ing into the bundle folder after it has downloaded
  # and running a system command to configure the plugin, in this case for 
  # YouCompleteMe it initializes its submodules and then installs 
  # the native extensions
  bundle 'YouCompleteMe' do |b, context|
    b.after_download do 
      Dir.chdir(context.output_folder(b)) do
        system("git submodule update --init --recursive && ./install.sh")
      end
    end
  end
  bundle 'MatchTagAlways'
end

github 'vim-ruby' do
  bundle 'vim-ruby'
end


# A vimscripts group allows you to pull down individual script files from vimscripts.org
vimscripts do

  # when you define a group inside a vimscripts section, the first arugment specifies
  # what type of plugin the script is
  group :plugins do
    script 'IndexedSearch', 7062
    script 'autotag', 12473
    script 'DirDiff', 13435
  end

  group :syntax do
    script 'jquery', 12276
  end
end

# A vimzips group allows you to pull down individual zip files from vimscripts.org
vimzips do
  zip :vimgrep, 3407 
  zip :bufexplorer, 20953
end

With the configuration file in place, if you are in the folder that contains the configuration file, you can just run:

vrundler install

If not, you will need to provide a path to the configuration file as an argument:

vrundler install --config_file=PATH_TO_YOUR_CONFIG_FILE

Caveats

Minimalist type functionality, refactored from a script I wrote years ago. I've used it successfully for a long time. It's optimized for my workflow. No tests, though the code is simple. YMMV.

License

Released under the MIT License. See the LICENSE file for further details.