Puthick’s Companion Notebook

Online notebook for computing related stuff on the Internet collected by Puthick

I love GNU Emacs

Posted by puthick on May 8, 2008

I started using GNU Emacs or Emacs in 2004 when I went to the ANU. I love it ever since. I will you why Emacs is the best text editor I ever used. Emacs keyboard commands are really efficient. I split window at a fraction of second, copy and paste from one window onto another without moving my hand away from the keyboard. I don’t have to remember every variable either in the same file or in a different file. I can split the window into 2 panels and open the file that I need to know the variable name while writing a new file. It is even better when text-based Emacs can do the same thing. Text-based Emacs becomes handy when I need to do these things remotely via ssh which is far more efficient than vnc. Most of the times servers don’t run in graphic mode. Vi cannot deliver these functionalities that Emacs can. Vi is good at small update or creation job while Emacs can do heavy work over an ssh connection. Emacs supports C, C++, Perl, Python, Java, Ruby and of course Lisp indentation. It can convert indentation tab character in spaces and vice versa.

Emacs is a simple tool but more efficient than most Integrated Development Environment tools. I need to learn and master one tool for every language I will have to learn and use rather a dozen of them. GNU Emacs is not only available on GNU Linux but Microsoft Windows and Mac as well. So, one tool will be the job for many languages and many platforms. So why not. It makes my life a lot easier.

Even though Emacs is efficient, it can be a bit tricky to understand the keyboard commands. “C” and “M” for pressing and hold Ctrl and Atl keys. Fair enough, C for Ctrl but what about M. M is for Meta key in Macintosh, which is equivalent to Atl in PC. These command reference cards below are from “Learning GNU Emacs” book.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>