My first post-Dreamweaver text editor for web development was Espresso by MacRabbit. It was (and is!) a wonderful program, featuring visual tools for editing CSS, code folding, Zen coding, the works. It ignited my interest in effective workflow management with regards to development. A few months later, I learned about Sublime Text; a workhorse of a text editor that seemed to be endlessly customizable via plugins. Most fantastic thing about Sublime (I think) is the keyboard support—instead of that oh-so-cumbersome mouse, I began to learn how to navigate Sublime projects via keyboard shortcuts only. That, coupled with linting, code-completion and endless theme options saw me using Sublime for the next two years. For this, I’ll always have a special place in my heart for Sublime Text. But lately in my quest for learning Ruby on Rails development, I’ve decided to attempt a switch from Sublime Text to Vim. Don’t get me wrong—Sublime Text is a fantastic editor, and with its myriad plugins, Rails development has been a breeze. But personally? I like the nerd factor associated with Vim. Becoming efficient with its commands and never having to take your hands off the keyboard (possible in Sublime Text, I know). The fact that, if I have to SSH into a development environment, that environment will most likely have vim (or some vi-derivative) installed. Past the nerd factor, there are other great reasons to switch to vim. Instead of rehashing, I’ll direct you, dear reader, to this article: Why Vim?
First I had to learn the basics: how to navigate, how to copy lines and become somewhat proficient in a text editor created almost 25 years ago. I used several resources for this:
After learning the basics, I found that the fine Boston Rails outfit Thoughtbot uses vim in their everyday dev lives. They posted their dotfiles on Github which have been invaluable in setting up a solid workflow for vim-rails development.
I’m finding vim to be just as extendable as Sublime Text, though it’ll be a while before I’m as proficient in vim as I am there.