Jake Worth

Vim or Bust

August 20, 2014

Starting with this blog post, I will be using Vim as my primary text editor.

When I started programming, I was on a Windows machine. I used Windows Notepad at first, then moved to Notepad++. This was my first text editor with some real features, and I still think it’s a good choice for basic functionality.

When I started programming full-time, I learned Vim. It was installed on my machine, my coworkers used it, and we had standalone Linux servers so it was a necessity.

I soon gave up on Vim. There was a lot of change happening at that time; I was learning Rails, Linux, Postgres, and the architecture of a complex Rails app all at once. People who say Vim is easy or that they choose it because they are ‘lazy’ forget how steep the initial learning curve can be. It’s a different way of typing.

For the past year, I have been using Sublime Text 2 for writing code, Vim for server maintenance, quick fixes, and commit messages, and Meld for git comparisons. I don’t like using multiple programs, but each seems pretty good at its specific function.

I have always known that Vim is the best of the three, for me. Watching a skilled Vim user write code is a humbling experience. They type at a speed faster than they can think. It’s almost as though their brain is being downloaded straight into the computer. Most of my mentors and programming heroes choose Vim. A lot of the Rails shops I respect are 100% Vim. I have always believed I would someday switch to Vim, when I had the time.

Of course, we never get such a luxury. So today, I’m going to start using only Vim.

I have a one week plan in place to make this happen. Here’s the gist:

  • Install basic dotfiles (done)
  • Remap ‘ESC’ and ‘Caps Lock’ (done)
  • Remove Sublime Text from my Unity launcher (done)
  • Complete the Vim tutor (done)
  • Complete Vim Adventures (done, at least the free part)
  • Print out and laminate a Vim graphical cheat sheet (done)
  • Read Vim ‘Getting Started’ ‘Editing Effectively’ from Vim’s :help
  • Read all of the Vim resources from one of my favorite repos, https://github.com/vhf/free-programming-books
  • Play some TypeRacer to get my speed up
  • Dig into Vim’s :help
  • Repeat

I’m not starting from zero; I use Vim every day. What’s changing is that I’m going to use it for all those tasks I didn’t want to use it for before: feature building, git comparisons, random notetaking. I’m taking away any other option.

It’s not going to be easy, but I think it’s got to happen. I hope this experiment will make me a faster, better programmer.


Jake Worth

I'm Jake Worth, a developer at Hashrocket based in Chicago. Blog About Now