Monday, 19 November 2007

My Roughly 30 Days with Emacs

Well my roughly 30 days with Emacs is over. It started on Sunday 9th October 2007 and went until Friday 9th November 2007. It has not been an entirely pleasant experience. At moment I don't intend to return to Emacs. I have used Vi in the past and found it okay, nothing really stood out for me and it was a similar situation with Emacs.

I choose to experient with Emacs because I had chosen to stop using Microsoft Visual Studio 2005. I work with code and text a lot and was seeking a plain text editor that was able to handle a variety of tasks, stable, resource efficient, free, open source and was comfortable to use.

Emacs was an attractive option because after having used Vi for a while I wanted to try Emacs because I had heard so much about it.

I worked through the included tutorial which was a fair time investment. I started off using it as a text editor. I was quite challenging to initially use and the keystrokes were uncomfortable.

I then worked through the book, “Learning GNU Emacs 3rd Edition” from O'Reilly which helped but I found that there so many keystrokes to learn and there were too many keystrokes to do what I wanted.

For example to save a document I needed to press “control” and “x” followed by “control” and “s.”

Another example is that to switch to another already open document, assuming I had two windows open, I needed to press “control” and “x” followed by “control” and “b” to bring up a buffer window. Next I needed to press “control” and “o” to switch to the window with open files. Next I needed to move the cursor over a file and press “enter” to open the file in the active window or “o” to open the file in the other window.

The list of open files did not take into account any spatial awareness that things like a tabs for open files do.

I also missed my list of project files and my list of classes that are available in Visual Studio.

I missed being able to organise my files into projects which allowed for things like searching for a specific fragment of text in files that may or may not be open but are of the same project.

I used Emacs for quite a while to some Python programming and though the support was good I did not like some keystrokes and how sluggishly the Python interpretor. One of the keystrokes that I did not like was going to a newline. Pressing “enter” took you to a new line and the start of that new line. Pressing “control” and “i” was required to take you to a new line with proper indentation.

Another challenge was to simply change the background, foreground and cursor colour and to make them stay that way.

I found that a lot of Emacs could not be done with intuition, to do things with Emacs, one must be prepared to read documentation, read guides and search on the internet. It would be useful if there was some way to ease yourself in.

There are some things that I will miss from Emacs. Now that I have written about it I can see there are some ways to approach the keystrokes such as when saving a file, instead of doing it all with my left hand, my right hand could help by taking care of the “control” key.

I know that Emacs was designed to allow the user to customise Emacs to suit their needs but this is something that I am not looking for at the current point in time. I also need the ability to quickly navigate between files, to keep files in a project structure, an alternative way to to things when I don't know or can't remember keystrokes and more convienient keystrokes. I found it time consuming and fidly.

I do like a number of features of emacs such as having no dialog boxes, its stability, speed, size, and multiple programming language support. I will miss it as I continue on my experiements with plain text editors.

I have had a feeling that it was silly to have so many different editors when all you are doing is manipulating plain text whether you are working with a Python program or a Tex document. Perhaps I am wrong and in order to to support the user a program must specialize and be separate. So for now I have a blog editor, a html editor, a Python editor, a Latex editor and so forth.

In the mean time the next editor I am trying out is Notepad++.

No comments:

Post a Comment