So, with the announcement of Vim 7.0, the ridiculously confusing ying to Emacs’ fat, bloated yang, I’ve decided to take a break from my traditional editor, Emacs, and give Vi another go (with the help of a VIM Reference Card).

Now, you might be asking yourself, “why oh why, dear god, would he do this to himself?!?” And, frankly, I have no good answer to that question. Toying with it, I have to admit that there seems to be a lot of power behind the incredibly esoteric Vi interface. To call it a programmers editor is an understatement… the various commands in Vi, together, compose a bewilderingly complex, difficult to understand programming language tailored specifically to interactive text editing. Moreover, the focus on the keyboard means less mouse use, resulting in less shoulder strain. And the fact that most of the commands are simple characters means no more Emacs-finger, due to reaching for the control key.

And all this power comes in a deceptively slim package. The editor starts up blindingly fast, which means it’s great for small edits or larger tasks, unlike Emacs, which I tend to start up and just leave running. And the fact that it’s terminal based (it doesn’t open up a separate window) means I can run it inside of GNU Screen comfortably, thus allowing me to migrate work to and from the office easily by detaching and reattaching screen sessions.

So, we’ll see how it goes. I’ve been spending my time hacking C code and writing POV-Ray scenes with it, and so far the experience has been positive. And I think there’s a certain zen to Vi commands that I’m slowly starting to grasp… an order in the chaos so to speak. And, hey, in reality, is ‘C-x C-s’ really that much easier than ‘:w' (especially after mapping 'jj' to and ';' to ':')?