08 December 2015

Evolution, a Vim Colour Scheme.

I would like to introduce a Vim colour scheme I have been using and tweaking for a long while. I called it Evolution, and it's available here.

Evolution displaying a C header

I spend a lot of time in Vim, in the terminal, and I find the use of colour a big help. I am also strongly protanomalous, often called "red-green colour blind". This basically means that my eyes have pretty ineffective apparatus for seeing red, or at least distinguishing it from green. This also has a knock-on effect for all sorts of colours which contain red or green components, such as purple, brown, orange, pink, etc. I've spent my life answering questions about what this is like, and not really being able to explain it satisfactorily.

There are actually a few fairly good explanations of what it's like to be found on the Internet these days, such as this one on the EnChroma site. I also really like the following simple description from WeAreColorBlind:

The colorblind have a narrowed color perception. Green is still green and red stays red most of the time, but not as vibrant or bright as a non colorblind would see it. Colors lie closer to each other, especially shades of colors.

So basically, due to this narrowed colour "envelope", I have found that the vast majority of available colour schemes, especially when it comes to syntax highlighting, do not enable me to sufficiently differentiate between the different items being themed. For those colour schemes that I found easier, they tend to be really garish, and hard on the eyes after a long while using them.

This describes my motivation to develop Evolution. It is based on Herald, but I've forgotten how much I have changed over time. The aim is to provide obvious and clear colours for syntax highlighting, with colouring for non-text objects that is useful, easy on the eyes and stays out of the way. This is a dark theme, which is a must for me not only for eye strain, but also since I find it many times easier to distinguish colours against a dark background than a light one. It is also designed to work well with a semi-transparent background. I'm using it with the Termite terminal emulator, at the moment, with a 90% opaque background.

Here's an example of the scheme displaying a few different file types.

Evolution displaying LaTeX Evolution displaying markdown Evolution displaying ruby