I’ve used a wide range of programming editors throughout my life. From the glorious copy con and QBasic of the DOS days, through the Turbo C of my teenage years, including the emacs of my college days and the Source Insight and Eclipse of my professional career, one thing is clear:

I was a terrible IDE user

This means that I rarely used, or even knew of, more than 5% of the features of each IDE - excluding (maybe) the glorious copy con editor, of course. I can still remember the shock at watching someone else debug code by using a debugger (!!!). Turns out there was one right inside Turbo C all along.

And then came along The Pragmatic Programmer, which is a phenomenal book. One of the things they recommend is to choose a text editor and learn how to use it. Learn how to use it real well. Which is why, I think, having a learning curve that’s a bit steep is a good thing.

In college, after the first year the emacs police got off of our backs, and we could use eclipse. Many people did just that. I didn’t - I had been forced to endure emacs for too long, and had to pay too many hours to learn the likes of “Ctrl+X 2”, that I just didn’t want to learn how to do it all over again (I still don’t know how to do it in eclipse). This was, of course, a stupid idea. But to rationalize why everyone had red squiggly lines below their errors as they typed and I didn’t, I had to learn emacs just bit more in depth. Or at least spend hours talking to the emacs psychiatrist, which eclipse doesn’t have. Take that eclipse!

The problem was that I never really liked emacs. It can do horrible thing to your keyboard’s CTRL key. And I never liked it’s MS-Word philosophy of putting together one huge application (or OS) instead of many small programs which can be bundled together as you see fit. And getting a decent copy outside of unix- land is always an annoyance, even on my Mac, which is a citizen of unix-land, kind-of. I still hate programs that are several mega-bytes overweight. That’s why I’m switching to vi.

So far, I really, really like vi. The whole normal mode is great for touch- typing - no more reaching out for the arrow keys (or the CTRL key). It’s a nice programming editor, though I still have a lot to learn. My main IDE is still Eclipse, and although its C++ support is sketchy, it will probably take a while before I’m proficient enough in vi to give eclipse up completely.

Above all, I still miss Source Insight, now that I’m on a linux machine. It’s probably the best editor for a large code base. It’s one of the most ugly editors, but when most of the code is already written, it can’t be beat. But now I mostly write new code, so it’s not too bad. I’m good with vi.

But I still don’t know how you say Ctrl+X 2 in vi…

edit: it’s “:split filename”

Updated: