Posted in Engineering

Late last year, I finally made the effort to learn that other text editor, vim.

I knew the basics of emacs from school, and I had always relied on simple, graphical text editors like Textmate and domain-specific IDEs along the lines of Visual Studio and RubyMine. At Square, however, my team has made vim the preferred editor, and I have honestly been impressed with the simple efficiency of our vim hipster contingency.

Nowadays I’ve found a happy compromise[1] – Sublime Text 2, with basic vim commands via the built-in Vintage mode. Having the ability to fall back to ingrained OSX movement commands (via the ⌘ and ⌥ keys) has been a great transitional tool.

In any case, I’ve been bookmarking resources for learning vim as I’ve come across them:

  • VIM Adventures; learn how to navigate with vim by playing a game.
  • Vim tutorals; a ton of in-depth screencasts.
  • Vim cheatsheets (a), (b) and (c); quick references to some common and uncommon commands. Everybody seems to learn something new when looking through these.
  • Learn to speak vim; understand the philosophy behind vim commands.
  • A Starting Guide to VIM from Textmate; specifically going to MacVim, somewhat biased to the author’s aesthetic tastes, but I approve of any attempts to make vim prettier.
  • Learn Vim Progressively; another step-by-step tutorial on vim commands.
  • VIM for (PHP) Programmers; despite the title, a pretty thorough walkthrough of all VIM has to offer.
Happy vim’ing!
Footnotes    (↑ returns to text)

  1. Happy to me anyway; Brian says Sublime’s vim bindings are the text-editing equivalent of the uncanny valley.