I am a big fan of command line tools, and I am convinced with the usefulness of Unix philosophy as one tool for the job. So what is emacs good for? Recently I started learning emacs (downloadable from here), and I can give you at least 5 good reasons to learn it:

  1. Org mode. This simple and elegant tool is the best personal organizer of all time.
  2. Support for Unicode. Terminals don’t support Arabic and other Unicode, Emacs is a good cross platform solution to deal with this problem.
  3. TRAMP. This is another great feature, you can browse files on other computers as if they were on yours.
  4. Info. A great tool for browsing open source software. This is how I started learning Emacs, I was looking up something else using info.
  5. Buffers. A good why for organizing things.

I can go on. I can also mention IDEs, Magit, browsers, etc. In short, it is an integrated solution to the needs of a software developer. I don’t understand why people compare it to Vim, which is a better text editor, but does only that. To learn emacs, check out the mastering emacs blog, or get the book.

Org Mode

For a quick overview, watch this on youtube. To learn it, see the following references

  1. Info C-h i then click on Org Mode.
  2. Their compact guide.
  3. Their reference card.

Arabic

Press C-\ and type arabic when prompted for an input method. You can change the direction of paragraph as follows

M-x set-variable RET bidi-paragraph-direction RET right-to-left RET

Tramp

To connect to something with SSH using TRAMP, use the following syntax

/ssh:user@ip#port:/file_address

For setting it up on Windows, check out this post

Info

As mentioned before, C-h i starts info. You can browse using this tool or use the stand alone version.

Buffers

You can move around text buffers (which can be, for example, interactive shells) easily with C-x → or C-x ←.

Additional Features

Integrated Shells

  • M-! executes a shell command in a minibuffer
  • C-u M-! inserts the output of the shell command into your text.

Similarly,

  • C-u M-| filters the text through the shell command
  • If you want to test this out first in a buffer, you can do M-| alone. Then you can go to that buffer and copy the result if you’re satisfied with it.

See the emacs reference card for similar commands.