Subscribe for free with iTunes, Twitter, or RSS (Ogg or Quicktime).


Support Neovim!

I’ve sometimes wondered what could lure me to switch from Vim to another text editor. On the whole I’m happy with Vim, but the one thing that bothers me is the cruft that has accumulated over the course of 20+ years. Imagine Vim, but without the nocompatible option. That is the promise of Neovim.

Continue reading…

Swapping two regions of text with exchange.vim


Swapping two regions of text is a common task, which normally requires that we make two separate changes to the document. Tom McDonald’s exchange plugin offers an elegant alternative, by providing an operator that swaps two regions of text in one go.

Continue reading…

Using external filter commands to reformat HTML


We can use pandoc as a filter to clean up WYSIWYG-generated HTML. Pandoc is a commandline program, but we can call it from inside Vim either using the bang Ex command, or by configuring the formatprg option to make the gq operator invoke pandoc.

Continue reading…

Vimcasts redesign: a work in progress

In the not-too-distant future, you can expect to see a revised design for The most significant enhancements will be the addition of tags, site search, and a responsive design for smaller screens. Hannah Adcock, from, has been helping me out by analysing user feedback, as well as data from Google Analytics.

Continue reading…

Operating on search matches using gn


The gn command (introduced in Vim 7.4) makes it easy to operate on regions of text that match the current search pattern. It’s especially useful when used with a regex that matches text regions of variable length.

Continue reading…

Creating mappings that accept a count


Lots of Vim’s built-in Normal mode commands can be executed multiple times by prefixing them with a count. User-defined Normal mode mappings don’t usually handle counts the way we might like them to. We’ll explore a couple of techniques for making our custom mappings respond predictably to a count.

Continue reading…

Follow my leader

Choosing a key-map for your custom Vim commands can be difficult. The common advice is to use <leader> for user-defined mappings, but that’s not the only option. There are dozens of two-key mappings that are not bound to any built-in functionality. These available mappings are easy to find if you follow a simple formula.

Continue reading…

Upcoming online workshop: March 5th

On Wednesday, March 5th 2014, I’m going to teach my Core Vim Class Online. Tickets cost $255, but you can save 10% if you buy a $230 Earlybird ticket by February 26th. You can buy tickets from

Continue reading…

Creating repeatable mappings with repeat.vim


The dot command is my all-time favorite Vim trick: it tells Vim to repeat the last change. But the dot command tends not to work well with user-defined mappings. In this episode, we’ll use repeat.vim to set up a simple mapping so that it can be repeated using the dot command.

Continue reading…

20% group discount for Core Vim Class, January edition

For the month of January only, I’m offering a 20% discount on orders of five or more tickets for my Core Vim Class. That’s £128 per head, a £32 saving on full price tickets at £160. If your team makes heavy use of Vim, then this is a great opportunity for everyone to level up their skills for 2014! Get in touch with for more details.