Ryan Cramer

April 30, 2008

VIM

Timeless Tools

To the best of my knowledge, there aren’t many full-time web developers that use tools like Dreamweaver, GoLive, FrontPage, and so on, to create web sites. Instead, web developers work directly with the XHTML and CSS code. Not just by choice, but by necessity as well. I won’t get into the reasons why that is so important here, but I will say that working directly with the code is something that’s not likely to change in the future, given the nature and purpose of markup.

To work with code, a text editor becomes your key tool. Everyone has their favorite text editor. Mine is VIM, which is essentially a newer version of the unix classic, VI. I get chastised for using a text editor that came from the 1960s. While it may be an old tool, made for a different time, it’s a great tool that I could not do without.

I first started using VI in the early 1990s because it was the only thing available to write email on the school’s VAX computer. My first impression of it was not good. I thought it seemed horribly arcane, dated, and masochistic. But I learned it out of necessity, and before long, it was second nature. More traditional text editors became unwieldy.

VIM is known for being extremely powerful with it’s text manipulation capabilities, among other things. I’m not going to get into that so much here because it would be a multi-year project to write about, and there is already vim.org. Beyond it’s inherent power, there are some very good reasons why VIM is such an important tool to a web developer.

First is portability — it’s installed literally everywhere, and available for practically every platform. Any web server you are likely to encounter is going to have VIM (or VI) installed. This enables you to edit, troubleshoot, and fix things in a pinch, directly from the SSH terminal (Microsoft servers excepted). No need to transfer files back and forth when the server has your editor on it already. It has proven it’s convenience in this manner time and time again.

Secondly is the fact that web developers have to do a lot of typing, which can be tiresome, or even lead to repetitive stress injury. In my opinion, VIM is quite a bit easier on the hands than more traditional text editors. You don’t have to constantly move one hand to the arrow keys, home/end, ins/del, pgup, pgdn, etc. All the keys you utilize for these actions are much closer than that, so there less jumping around the keyboard. It seems bizarre at first, but once you learn it, it’s like your communication channel with your code has been widened.

For these reasons and more, VIM has been an indispensable tool on my computer for more than a decade. If you don’t know it, would I recommend learning it? That’s a tough question. There no doubt that it’s extremely convenient in real world use, but it’s not particularly convenient to become proficient with. But if you are in this profession for the long haul, there’s little doubt that it’s an excellent and timeless tool for your web development arsenal.

VIM Resources