Italics in Vim

I write Markdown using Vim and the vim-pencil plugin and one of the things that particularly bothered me was that, by default, iTerm2 and the solarized colour scheme did not support italic text. I finally sat down this evening and got this working. Really, I just found and watched Greg Hurrel’s YouTube video explaining the whole thing.

To enable italics requires updating the terminfo database. Terminfo enables programs to use the terminal in a device-independent manner. For us, this means that it allows applications to lookup the correct escape codes for displaying italics. If the terminfo database has the correct escape codes present in the database, italics are displayed. If not? No italics.

To start, create a directory in $HOME called .terminfo. This directory will hold the terminfo database for your user. Now, we need a few files describing how to mark words as being in italics. In total, there are three different files that provide the required escape codes for tmux, tmux with 256 colour support, and xterm with 256 colour support. By adding all three to the terminfo database, you will have italics available everywhere you use Vim.

Create the following three files somewhere on your system:


tmux|tmux terminal multiplexer,
  sitm=\E[3m, ritm=\E[23m,
  smso=\E[7m, rmso=\E[27m,


tmux-256color|tmux with 256 colors,
  sitm=\E[3m, ritm=\E[23m,
  smso=\E[7m, rmso=\E[27m,


xterm-256color|xterm with 256 colors and italic,
  sitm=\E[3m, ritm=\E[23m,

Now, we need to compile these files and add them to the terminfo database using the terminfo compiler, available with the tic command. This command requires the path to your terminfo database, and the file to compile.

$ tic -o ./terminfo tmux.terminfo
$ tic -o ./terminfo tmux-256color.terminfo
$ tic -o ./terminfo xterm-256color.terminfo

After executing commands, italics works in Vim. As an optional addition, you can configure your Vim colour scheme to format any code comments in italics. You can do this by adding the following line to your .vimrc file:

highlight Comment cterm=italic

And there you have it. Italics in Vim.

Like this post? Subscribe via RSS or email to never miss an update.