Vim For Rails Developers Screencast
Vim as a Rails IDE is a professional screencast by Ben Orenstein that walks you through using Vim (a popular open source text editor) as a Rails IDE of sorts. It costs $9 and runs at almost 37 minutes long. I asked him for a review copy and promised I'd share my impressions here.
First, Ben has done a good job producing this screencast. It's an interesting introduction to using some Rails specific addons for Vim, such as Tim Pope's Rails.vim and Michael Sanders' Snipmate, a collection of TextMate-style snippets for Vim. (You can get both of these for free and check them out without getting Ben's screencast, of course!)
This screencast does seem to be Ben's first professional production, though, and it shows in a few ways. The screencast doesn't go to any lengths to satisfy people who aren't already reasonably familiar with Vim, and instead focuses on providing Rails specific knowledge and shortcuts to existing Vim users. If Vim is totally new to you or you can't get much beyond
:q!, you'll want to give this a miss.
Given the required level of familiarity with vim, it's also weird that Ben spends the first 5 minutes of the screencast emphasizing the importance of being able to type quickly and presenting tips on how to bring up your words per minute.
But There's More Good Than Bad..
Once Ben gets on to the Vim and Rails specific knowledge, though, his style is well suited to the screencast format. The sound quality is good and Ben is very easy to understand. He avoids needless jargon and his demonstrations are relevant and concise. He covers the quick navigation of a Rails project from within Vim pretty well and also looks at using TextMate-style snippets, project level searching, and multi-line commenting.
Ultimately, there's more than $9 of value in here if you have a vague familiarity with vim and want to get a good boost along the road to becoming a "power user" when it comes to Rails. At $9 it's a fraction of the price of TextMate by any means..
I asked Ben some questions to get a feel for the background of the screencast and his interest in Vim:
Why would you recommend vim above, say, TextMate for Rails developers?
Well, are you an efficiency junkie? TextMate is a great product, but I don't think modal editing can be beaten in terms of speed and minimal distance to done.
I do think TextMate has some great features, like its Cmd+t file finder, and snippets. However, these can and have been ported over to vim. You can replicate the Cmd+t by installing fuzzyfinder_textmate, and I cover a plugin to get TextMate-style snippets in the screencast.
What's your history with text editors, particularly with Ruby/Rails development?
I got a lucky recommendation from a friend early on, and had the good fortune of learning vim straight off. I was immediately struck by how well it was built for speed: the most common tasks were incredibly fast to perform, often requiring only a single keypress. After a year, I started writing a lot of Common Lisp. If you're going to do this, Emacs is pretty much the only editor worth considering, so I made the switch. I was amazed by how difficult this process turned out to be, and I wrote Switching Editors is Just as Hard as Switching Languages about my struggles. I loved Emacs' customizability, but I missed vim's efficiency of keystrokes.
Finally, I started writing Rails code professionally full-time made the happy leap back to vim. I wish I could script vim in elisp, like Emacs, but otherwise I couldn't be happier with my editor.
Any last thoughts?
I think it's absolutely vital that people customize their editors like crazy, and constantly refine those customizations to let them work faster. If the idea of switching editors for a week wouldn't make you miserable, you're not spending nearly enough time molding your environment. Personally, I keep my entire vim configuration (and all my other dotfiles) in a git repository. Every machine I work on has exactly the same highly-tailored environment, and I'm immeasurably more productive for it.
The screencast is a collection of the plugins and techniques that have carved out a home in my repository and a permanent place in my repertoire.
Ben's screencast can be found here.