Benad's Web Site

OK, now the one million dollar question: Emacs or Vi?

Well, let me first go back in time. I was trying to set up a bare-bones image of RedHat 7.3 when I realized that no editor was installed except a pretty old version of Vim. So, like all new users of Vim, I panicked a little bit, then I started going through the tutorial...

For your information, I used to be an Emacs user, because the combination of Emacs and Perl is what was commonly used in the company I was working for. I quickly noticed that, around me at the workplace, no one actually read the manual of either Emacs of (worse) Perl, and the learning curve of actually reading the manuals was pretty steep.

Over time, though, I started to really like Emacs, especially for C development. The c-toggle-auto-state option would automatically create newlines and indentation as you write the code, so you never have to press the enter key. Also, the c-toggle-hungry-state option would, when you press backspace, delete all the spaces and newlines in one go.

But then, panic, the GUI version of Emacs that I used for Mac OS X stopped working. Even though I found a working version last week, that incident prompted me to look for something else...

The problem that I had with Emacs (and Vim, which I'm learning right now) is that it's simply not intuitive, in the sense of not following the "new" Mac/XeroxParc/Win32 standards for text editing. While it works well on the command-line, it just doesn't cut it when you use the mouse for copy-pasting or using the menus, etc. Actually, even for simple text editing on a terminal, I found GNU nano to be much more intuitive.

I tried looking for GUI-based editors, but either they are part of an full IDE, are Sharewares, works only on one platform (Windows or Mac OS X), or are plain ugly.

And then, a co-worker (Michel) introduced me to jEdit. It's a fully-featured GUI-based text editor in Java. What made me "switch" to it was that it could do a lot of things Emacs can, but in a much more simple and intuitive way, for example regular expression searches and rectangular selections. Also, it follows the typical standards for text editing, supports drag-and-drop, and runs everywhere Java does.

Personally, I still prefer NetBeans for Java development and Emacs for C, but for anything else I move to jEdit because of its simplicity and kick-ass support of XML files. So if I recommend it, it's not because it was so painful for me to learn that I have to justify my decision to protect my ego (thus leading to those stupid "Emacs vs. Vi" arguments), but because it's cool, it's easy to learn, and it does the job.

Published on January 2, 2006 at 13:00 EST

Older post: Virtualization As A Solution For Package Management

Newer post: Javolution: Recycle Your Objects!