Post

The right colors for your VIM

I have a lot of Vim colorschemes, and I like to change them very often, reflecting my mood. I needed a way to showcase them all and quickly pick one.

The original Vim Color Scheme Test script by maverick.woo is written in Perl and the build works on Windows systems. I wanted to add some new features, and to test it with my own colorschemes, but as I’m not very confident with Perl, I preferred to start over with a new Ruby version instead of forking his project. Here’s my version (and here’s the github page):

first img second img

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.

To run it, you’ll need:

  • 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
  • Add more languages (currently only Ruby and Python are supported)

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.

This post is licensed under CC BY 4.0 by the author.