emacs is not for me
I tried emacs last weekend (I'd like waste a little time on such kind of thing. can't help). It's the first time I seriously tried to get it since my first encounter with it four years ago. For some non-geeks there reading my blog, I'd like to plug in a little preliminary knowledge on "serious" text editor here.
Notepad, the standard editor on windows is what people have in mind upon hearing "text editor". Well, you can insert any character you like into it and use up/down/right/left arrows to move around. But have you ever wondered that how inefficient the model is? You have to move your hand to the left low corner to hit the arrows and even worse is when you are forced to use mouse. These movements interrupt the flow of thought and slows the writing down.
Besides the difficulty of moving around, there are a lot of things that people can't do in notepad, such as deleting a line or a sentence with a single keystroke.
Thus rises the great text editors. All of them was written at least twenty years ago and have been continuously improved by tens of thousands of programmers. So it means that while microsoft was developing functions such as mail merge for word, all the efforts spanning twenty years are made only for handling plain text. Imagine how powerful the editors are!
Two of them stands out. One is vi, which is a excellent general purpose text editor I love to death. But my first encounter with it is extremely unpleasant. The odd things with vi is that in order to avoid the hand movements from the center of keyboard to the arrows, vi separate the insertion of characters from text browsing. In insert mode, you can type just as you like and after composition is done, you just hit ESC and you are in browsing mode. In browsing mode you can use j and k to scroll upwards and downwards. Though weird at first look, it is perfectly comfortable since the two keys are under the default position of your right hands. Plus you can type dw to Delete a Word, d2w to delete two words and so on since we you type in browsing mode isn't directly inserted into text.
However, imagine the reaction of a newbie who doesn't know the two modes. The default mode when you enter vi is browsing mode so whatever you type, it is not displayed in text. And you dont even know how to quit the program if you are in console! At that time I had to terminate the entire sesion to quit vi!
Then fastforwarding a few months, vi gradually grows on me. I really appreciate the ability of keeping my hands on the center of keyboard. Plus you don't have to worry your text get messed by accidental keystrokes once you are in browsing mode. Very secure.
The other big name is emacs. It is a huge beast compared with vi and written in a uncommon language looking like (((where I ((am (((((all ))the ))paired parenthesis)) is driving me))))nuts))). The power of emacs is that it can do everything you ever want to do on a computer because of the unlimited extensibility of the design. It's a operating system instead of a text editor. I really want to dive into it last weekend but there are a few things I just can't stand:
1. The lack of a real undo and redo function draws me back. When you made a error and undo to revert to the previous state, you are adding the undo action to your history! How silly is that! I think it is a 100% quick hack when they can't figure out how to write a real undo and redo.
2. The sluggishness of the program. I knew the program is single-threaded so it would be slow, but I did expect it to be this slow!!! when you scroll fast, the page will show a postive drag. And it uses up to 40 megabytes of memory in my box! Unbelievable for a text editor (though small for an operating system).
3. the unfriendly keybindings such as "ctrl-o shift ctrl-x" (a single keystroke) hurt my hands. I have to twist my hands in an usual manner in order to hit keystroke!
So I decided to give it up because of the three points mentioned above. It is so freakingly difficult to learn that the learning curve can't be shown in a 2D picture!(see following diagram).

One more thing, I find that popularity of emacs is fast declining, See google trends. I chose the keyword vim to compare with because the keyword vi means a couple of other things so it's not fair to compare directly. Why emacs is losing? I suspect it loses its ground to another ungodly huge monster, eclipse.
1 Comment