Emacs as a Shell
Pavel Korytov writes in his recent post:
So over time, Emacs has become my programming environment, email client, window manager, knowledge base, and a lot more. I think I ended up using Emacs for almost as many things as possible;
This is where I want to be in the near future. So far I’ve moved my development environment and email to Emacs. Next up are notes, RSS reading, and music listening.
What I love about Emacs is the consistency between modes/packages. They accomplish widely different things, but the general control scheme is the same. It’s great since all TUI programs I use tend to support Vim’s way of doing things. Having it all inside Emacs changes the dynamic. I’m trying to think of Emacs as a shell rather than an editor.
What Emacs really is, is a virtual machine running LISP code. Some say that Emacs violates Linux philosophy. I don’t see it this way. Does shell violate it? It’s also a way to run different programs. Emacs is an abstraction over real shell which adds some calm to it. It’s a way to have an interactive layer over OS… which also does text editing.
So, when you look at it this way, Emacs makes a lot of sense:
- It runs programs. Bigger packages, like Magit, are nothing short of real programs.
- It’s scriptable. Elisp all the way!
- It allows for interoperability between programs.
- It runs above basic OS. You can replace your window manager with Emacs, but you need some sort of kernel.
- You can live entirely inside Emacs, just like you can live entirely inside a terminal.