A light (and dark) color scheme for Vim inspired by iA Writer
The pencil color scheme takes its inspiration from iA Writer, an elegant word processor available on the iOS and OSX platforms.
This Vim color scheme features:
- Subtle indicators of changes in the gutter for Signify, gitgutter, etc.
- Use for both code and prose, though it’s definitely geared towards the latter
- Light and dark background variants
- iTerm color scheme available for using this color scheme with terminal-based Vim
- Support for tpope/vim-markdown, preservim/vim-markdown (aka plasticboy/vim-markdown), and gabrielelana/vim-markdown
- Support for the bling/vim-airline status bar plugin
- Support for Vim’s Conceal feature to hide
_
and*
markup for _italic_, **bold** and ***bold italic*** styled text in Markdown
Currently requires vim >= 7.0
For a basic install simply copy the color scheme file to your
~/.vim/colors
directory.
For full support in which the airline theme is available, install using Pathogen, Vundle, Neobundle, or your favorite Vim package manager. For more recent versions of vim and neovim, use your pack directory. (See :help packages for more information.)
If you’re looking for greater contrast, set the following global in your
.vimrc
:
let g:pencil_higher_contrast_ui = 0 " 0=low (def), 1=high
It currently only affects the blacks and grays.
When using a filetype of markdown, the ‘#’ heading text is shaded dark blue by default. This compensates for the lack of a visual cue found in iA Writer where the heading indicators are inside the left margin.
If you’re looking for neutral heading colors:
let g:pencil_neutral_headings = 1 " 0=blue (def), 1=normal
Similar to the rendered markdown found on GitHub, inline
and fenced
code blocks will have a subtle gray background.
If you’re looking for neutral code background:
let g:pencil_neutral_code_bg = 1 " 0=gray (def), 1=normal
See g:pencil_higher_contrast_ui
above for adjusting the code background
contrast.
For users of Signify or gitgutter, indicators will be subtle monochrome by default. If you prefer colored indicators, set the following global:
let g:pencil_gutter_color = 1 " 0=mono (def), 1=color
You can choose between undercurl
and underline
in highlighting
misspelled words.
let g:pencil_spell_undercurl = 1 " 0=underline, 1=undercurl (def)
Non-spell underlines remain non-curled.
If you're using Vim in the terminal and your terminal supports italics, you can opt-in to italic support for some syntax highlighting, such as comments, by setting the following global:
let g:pencil_terminal_italics = 1
A matching theme for the Airline status bar plugin is available.
Enable by adding to your .vimrc
:
let g:airline_theme = 'pencil'
The pencil color scheme supports the highlighting groups in the
tpope/vim-markdown syntax plugin, to take advantage of Vim’s Conceal
feature to hide _
and *
markup for _italic_, **bold** and
***bold italic*** styled text in Markdown
See the vim-pencil plugin for details on automatically enabling this feature.
For more details on Vim’s Conceal feature, see:
:help conceallevel
:help concealcursor
Just like any other color scheme:
:colorscheme pencil
You can toggle between the light and dark variants:
:set background=dark
:set background=light
Like any other color scheme, you can add these commands to your .vimrc
.
iA Writer uses a typeface called ‘Nitti Light’ by Blue Monday. ($)
Free alternatives with bold and italic support include:
- Anonymous Pro (serif)
- Courier Prime (serif)
- Cousine
- DejaVu Sans Mono
- Fantasque Sans Mono
- Liberation
- Luxi Mono Regular (serif)
- Ubuntu Mono
Cousine is a good match for Nitti Light.
- mattly/iterm-colors-pencil - terminal support for mutt, tmux and iTerm
- gummesson/term-colors-pencil - terminal support for urxvt and termite
- mattly/atom-colors-pencil-light - Atom version of the pencil color scheme
- nickburlett/vim-colors-stylus - a fork, with a variation on pencil's colors
If you find this colorscheme useful, you may want to check out these plugins originally by @reedes:
- vim-lexical - building on Vim’s spell-check and thesaurus/dictionary completion
- vim-litecorrect - lightweight auto-correction for Vim
- vim-pencil - rethinking Vim as a tool for writers
- vim-textobj-quote - extends Vim to support typographic (‘curly’) quotes
- vim-textobj-sentence - improving on Vim's native sentence motion command
- vim-thematic - modify Vim’s appearance to suit your task and environment
- vim-wheel - screen-anchored cursor movement for Vim
- vim-wordy - uncovering usage problems in writing
- vim-wordchipper - power tool for shredding text in Insert mode
The README in thematic has more details on setting up emulation of iA Writer.
Thanks to those who have helped improve the pencil color scheme:
If you’ve spotted a problem or have an idea on improving this color scheme, please post it to the GitHub project issue page.