Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A script to create samples of installed vim color schemes
VimL JavaScript Ruby
branch: master


latest commit 5671912034
Andrea Schiavini authored
Failed to load latest commit information.
lib Added lightbox
sample-output Added new sample output
samples Multiple languages support
screenshots Boh
spec Added file copier to import colorschemes; modified template with down…
template Added new script to build only the index files, template fixes
.gitignore Added README
build.rb Added lightbox
build_only_indexes.rb Added new script to build only the index files, template fixes
vimrc Added the tohtml vim plugin so it's no longer a dependency

Vim Color Scheme Test Ruby

See it in action!



The original script by maverick.woo ( ) is written in Perl and the build works on Windows systems. I wanted to add some new features, but as I'm not very confident with Perl I preferred to start over with a new Ruby version instead of forking his project.

What it does

The script loads all your colorschemes from your default vim directory (~/.vim/colors), and writes into the output dir an HTML file for each colorscheme, with a render of a Ruby file using this colorscheme. It also writes a different copy for each language present in the samples/ directory. It also builds an index page for each language, with a showcase of how the colorschemes render the sample code, a download link for each colorscheme and a nice lightbox to preview it.

What it needs to run

  • ruby
  • macvim
  • tilt rubygem (to render the index template)

What still needs to be done

  • Separate light and dark colorschemes
  • Make this work with versions of vim different from MacVim
  • Add the current language name to index pages


ATM, the script uses a vim server named VIMCOLORS and sends it remote commands. This was made to make it faster, because opening a single macvim instance for each script required too much time. However, the --remote-send command of vim doesn't wait for previous remote-sends to be completed, so I had to add a "sleep 1" command in the script to prevent it from messing up the execution flow. Any hint to solve this is greatly appreciated.

Something went wrong with that request. Please try again.