Learn Vim at your own pace with my self-study Core Vim Course.

Learn more

Learn Vim at your own pace with my self-study Core Vim Course.

Practical Vim, revised for Vim 8

I’ve revised the second edition of Practical Vim, bringing it up to date with Vim 8. If you bought the ebook direct from Pragmatic Bookshelf, then you’ll receive the update for free.

As Vim continues to evolve, I want to make sure that the advice in Practical Vim stays relevant. The introduction to the book has this to say “On Vim versions”:

All examples in Practical Vim were tested on the latest version of Vim, which was 8.0 at the time of writing. That said, version 7.3 is modern enough to include most of functionality covered in this book, with a couple of exceptions. I’d encourage you to install an up-to-date version of Vim if you can, so that you can benefit from these improvements.

For more details on the new features in Vim 7.4, see my blog post on what’s new in the 2nd edition

What’s new in Vim 8

Most of the new functionality in Vim 8 falls outside of the scope of Practical Vim. I’ve written a couple of paragraphs that call out some of the highlights, which I’ll reproduce here:

Version 8.0 of Vim was released in September 2016. In earlier versions, Vim would run in vi-compatible mode by default, but in version 8 you have to explicitly opt-in to running in vi-compatible mode. In theory this could break compatibility for some plugins that worked in Vim 7, making them unusable in Vim 8. However, most plugins assume that vi-compatible mode disabled anyway, so this backward incompatible change is unlikely to cause issues in practice. Even so, this potentially breaking change justifies the major bump from version 7.4 to 8.0.

The most significant new features in Vim 8 are enhancements to Vim script. Vim now supports job control and asynchronous I/O, which means we can start and stop external processes, and communicate with them by exchanging messages in the background. This is useful for tasks such as syntax checking and generating auto-completion suggestions. Previously such processes had to run synchronously, causing Vim to be non-responsive until the process completed. Now these processes can run in the background, which makes everything feel more snappy and responsive.

I had to make a few alterations throughout the book, especially when referring to Vim’s default settings. While I was at it, I took the opportunity to fix some of the errata that readers had reported. This is a fairly minor revision on the whole, but it keeps the book fresh.

How to upgrade your ebook

If you bought the ebook edition of the 2nd edition from Pragmatic Bookshelf, then you can get the update by logging in to your Bookshelf Home Page.

If you bought the ebook version of the 1st edition direct from the Pragmatic Bookshelf, then you can get a free upgrade to the ebook version of the 2nd edition.

If you bought the ebook version elsewhere, you’ll have to pay to upgrade.


Browse similar content

Level-up your Vim


Boost your productivity with a Vim training class. Join a public class, or book a private session for your team.

Drew hosted a private Vim session for the shopify team that was one of the best workshops I have ever attended.

John Duff, Director of Engineering at Shopify


Make yourself a faster and more efficient developer with the help of these publications, including Practical Vim (Pragmatic Bookshelf 2012), which has over 50 five-star reviews on Amazon.

After reading it, I've switched to vim as my default editor on a daily basis with no regrets. ★★★★★

Javier Collado

Learn to use Vim efficiently in your Ruby projects

In association with thoughtbot, one of the most well respected Rails consultancies in the world, I've produced a series of screencasts on how to make navigating your Ruby projects with Vim ultra-efficient. Along the way, you’ll also learn how to make Ruby blocks a first-class text object in Vim. This lets you edit Ruby code at a higher level of abstraction. Available to buy from thoughtbot..