Skip to content
hexokinase.vim - The fastest (Neo)Vim plugin for asynchronously displaying the colours in the file (#rrggbb, #rgb, rgb(a)? functions, hsl(a)? functions, web colours, custom patterns)
Vim script Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
autoload Fix #35 Nov 20, 2019
doc Updates sing_column docs (#47) Dec 7, 2019
hexokinase @ f6e3585 Update submodule to fix incorrect ordering Nov 20, 2019
.gitmodules Fix #33. Add back hexokinase submodule Sep 24, 2019
Makefile Fix #33. Add back hexokinase submodule Sep 24, 2019 Fix README screenshot Nov 20, 2019
screenshot_colours.txt Fix #30 probably Sep 21, 2019
test_colours.txt Fix #35 Nov 20, 2019


The fastest (Neo)Vim plugin for asynchronously displaying the colours in the file (#rrggbb, #rgb, rgb(a)? functions, hsl(a)? functions, web colours, custom patterns)

let g:Hexokinase_highlighters = ['virtual']


let g:Hexokinase_highlighters = ['sign_column']


let g:Hexokinase_highlighters = ['foreground']

let g:Hexokinase_highlighters = ['foregroundfull']

let g:Hexokinase_highlighters = ['background']

let g:Hexokinase_highlighters = ['backgroundfull']


Problem: Colorizer and Colorizer are plugins which also display the colour of text. However, they do so by changing the background of the text which is not pleasing to look at. On top of that, they all scrape the file synchronously.

Solution: Have 6 different options for displaying colour, including as virtual text or in the sign column. As well, do all scraping asynchronously.


This plugin can display the colour of 6 digit hex codes, 3 digit hex codes, rgb functions, rgba functions, hsl functions, hsla functions, and custom patterns.

Colour can be displayed in each of the 6 six ways shown above, or can be customized to display colour any way the user chooses.

Note: By default all filetypes are scraped and highlighted on BufWrite and BufCreate, see :h g:Hexokinase_refreshEvents for more info.

Migration for existing users

See :help hexokinase-v1-migration


  • :h 'termguicolors' must be turned on and your terminal must support it
  • For virtual text: Neovim 0.3.2
  • For sign_column: Vim compiled with +signs or any Neovim version
  • Golang must be installed, for more information visit
    • Without Golang, a synchronous version of the plugin will still work, documentation can be found at :h deprecated-hexokinase.txt.
  • Currently, untested on Windows, help is welcomed.


  1. Install Golang
  2. Install the plugin with the plugin manager of choice and ensure make hexokinase is executed in the project root:
" vim-plug
Plug 'rrethy/vim-hexokinase', { 'do': 'make hexokinase' }

" minpac
call minpac#add('rrethy/vim-hexokinase', { 'do': 'make hexokinase' })

" dein
call dein#add('rrethy/vim-hexokinase', { 'build': 'make hexokinase' })

" etc.
  1. :set termguicolors

Quick Start

Choose your method of highlighting:

" Neovim default
let g:Hexokinase_highlighters = [ 'virtual' ]

" Vim default
let g:Hexokinase_highlighters = [ 'sign_column' ]

" All possible highlighters
let g:Hexokinase_highlighters = [
\   'virtual',
\   'sign_column',
\   'background',
\   'backgroundfull',
\   'foreground',
\   'foregroundfull'
\ ]

Choose which patterns are matched:

" Patterns to match for all filetypes
" Can be a comma separated string or a list of strings
" Default value:
let g:Hexokinase_optInPatterns = 'full_hex,rgb,rgba,hsl,hsla,colour_names'

" All possible values
let g:Hexokinase_optInPatterns = [
\     'full_hex',
\     'triple_hex',
\     'rgb',
\     'rgba',
\     'hsl',
\     'hsla',
\     'colour_names'
\ ]

" Filetype specific patterns to match
" entry value must be comma seperated list
let g:Hexokinase_ftOptInPatterns = {
\     'css': 'full_hex,rgb,rgba,hsl,hsla,colour_names',
\     'html': 'full_hex,rgb,rgba,hsl,hsla,colour_names'
\ }

Choose which filetypes to scrape automatically (by default ALL filetypes are scraped):

" Sample value, to keep default behaviour don't define this variable
let g:Hexokinase_ftEnabled = ['css', 'html', 'javascript']


Command Description
HexokinaseToggle Toggle the colouring
HexokinaseTurnOn Turn on colouring (refresh if already turned on)
HexokinaseTurnOff Turn off colouring

Full Configuration

See :help hexokinase.txt

Custom Patterns

See :help g:Hexokinase_palettes.

This can be used to colour specific variables.


I'm seeing grey colours when I toggle vim-hexokinase

You need termguicolors to be turned on. Verify :set termguicolors? outputs termguicolors. For more info, see

You can’t perform that action at this time.