Today I've made the decision to go cold turkey with my other text editors, Sublime Text and Atom, and to force myself to learn Vim. I've taken the first step by dragging those two apps into the trash bin and emptying it. The next step is to actually learn Vim.

What is Vim?

In his article Vim Tips For Intermediate Users Tomas Brambora describes Vim as an

infinitely configurable yet surprisingly lightweight editor

At first glance Vim looks like an editor you would have used way back in the DOS era. There are no graphical interface features like menus, buttons, or faux paper pages. It doesn't run in its own graphical window, unless you're using something like MacVim or NeoVim. It doesn't look anything like it's GUI brethren, SublimeText or TextMate or Atom, at all.

So what exactly is it? Technically speaking, it's an open source text editor designed to write code in Unix.1 But it's seems to be much more than "just" a text editor. It is scriptable, it is configurable, it is portable, it's extremely mature, and last but not least it is Everywhere!

Oh yeah, lets not's totally free.

I've always thought of Vim as one of those "hipster" tools that people brag about knowing because its a hard tool to learn. But I'm beginning to think that maybe all those "hipsters" are on to something.

I spend most of my time in the command line compiling Go, running tests, or just playing around in Ruby's or Elixir's REPL. It would be nice to not have to grab the mouse, or move my hand to the trackpad. Maybe it really is faster to just hit a couple of command keys to get to where I need to be.

What approach will I take to learn Vim?

I recently (well today actually) joined Upcase, a learning site run by Thoughtbot, and as part of one of their special Weekly Iteration videos they suggested to start with the plain and simple vimtutor.

If you have Vim on your computer then you already have vimtutor, and starting it is as simple as typing vimtutor in your terminal app.

vimtutor started

Another great tip, from Thoughtbots Ben Orenstein, was to use two Cheatsheets. One that you create for yourself while you're learning, and one that you should print off from

vim graphical cheat sheet

Other Vim Learning Resources

Vim Adventures is an amazingly well done tutorial for learning vim, but you have to spend $25 if you want to go past level 3 or so. If you can afford the $25 it seems well worth the money, but it's one of those things that I'd have to explain to my wife and I just don't think it's justified when there are some other amazing resources that are free online. vim adventures

Today I Learned Vim is a blog by Jack Franklin that has quite a few excellent tips on how to do things in Vim like pasting code without the extra indents, or using Tmux.

Vimcasts has free screencasts and articles on Vim from the author of Practicle Vim Drew Neil.

Vim environment setup

I've seen a lot of suggestions to remap the CAPSLOCK key to the escape key. Honestly, I didn't want to fool around with remapping keys on my keyboard, but at the same time who uses CAPSLOCK? I can't remember a single time I've ever needed that key. So I'm biting the bullet and remapping. Seil is an extremely easy tool that helps you remap keyboard keys. As you can see, by the lack of allcaps, I've already downloaded and used it.

Many people suggest editing the .vimrc file with some minimal settings before getting started, but I want to learn Vim in it's original form before I start customizing it. So I'll hold off on the customizations until I learn the basics.

What to expect?

The next blog or two will be about my daily experience learning Vim. After a week, I'll reassess if continuing with Vim is worth the steep learning curve. At the end of this blog serious hopefully you will have learned a thing or two about Vim as well. I'd like to read your comments if you decide to take the challenge of spending a Week with Vim.


  1. Part One
  2. Part Two