Why I chose Emacs over other editors

Last time I posted, I told everybody to choose a text editor from a rather small list.

Again, the most known text editors are Emacs and vim. But other famous editors are starting to show up, such as Text Mate and Sublime Text.

Again, I don’t intend to say that Emacs is better than those, I’ll only list reasons to why it fulfills MY needs. I will try to analyze what I think it is so cool in Emacs, even knowing that some of there features are also on other editors.

  1. Emacs is really, REALLY easy to extend. Since Emacs is actually a eLisp parser which its main functionality is text editing, you can customize it using eLisp. That is: anything that you could do in eLisp, you can do in Emacs. Vim has also a scripting language, but it is not as powerful, nor it has as many extensions, as eLisp.
  2. Extensions (cont.). There are a lot of extensions for it. Really. As I said before, I write on my blog through Emacs. I could read and write email through it. I can talk through it on IRC on it. Hell, I can even play Tetris on it!
  3. Macros. Macros are among the most awesome things about Emacs. You can store a bunch of commands into a macro for executing it repeatedly later. This saves a lot of repetitive work.
  4. Shortcut keys. I really don’t like how modal editing works. It’s not intuitive to me, no matter how fewer keystrokes vim users actually type.
  5. AUCTeX (and other LaTeX extensions). LaTeX is awesome, and using it on Emacs is even more awesome. The amount of helpers that Emacs has is amazing.
  6. Rectangle manipulation. Yup, you can manipulate regions (how Emacs calls “selection areas”) in rectangle shape. You can insert strings, remove them, among other things. Inserting one-line comments in lots of lines is a pleasure with it.
  7. Windows, buffers and other concepts. You can divide your screen into multiple windows. You can open multiple buffers and switch freely between them.
  8. Ansi-term. You can access any shell (e. g. bash) inside of Emacs. Need to edit a file and execute a command through ssh? Well, open a new window and use the ansi-term.
  9. Daemon mode. You can run Emacs as a daemon (and open it at login, for example), and open clients for it. Every client shares the same buffers. This is great in any kind of environment.
  10. Tramp mode. Tramp mode allows you to access files directly through FTP, SSH, or anything like it, on your own computer, without worrying if the target machine has Emacs installed on it. No need for downloading, editing and uploading, nor installing the editor on the target machine.
  11. Package management. Since Emacs has a lot of extensions, the internal package manager is useful for quickly installing them.

Probably there are other things that I can’t remember at the moment. But if you use Emacs and can give more examples, please, leave a comment!