Tech News
← Back to articles

Eschewing Zshell for Emacs Shell (2014)

read original related products more articles

EShell is a Lisp REPL. The following works as you’d expect from such a REPL:

$ (message "hello world") "hello world"

However, in a shell, we care more for simplicity and speed of typing that we do for semantic clearness, so we can, in this case, drop the parens with the same results:

$ message "hello world" "hello world"

Functions that begin with eshell/ are available in Eshell without the prefix, so calling the eshell/echo function makes the shell experience less surprising:

$ echo "hello world" "hello world"

If you put it in parens, you need to give it the full name:

$ (eshell/echo "hello world") "hello world"

What about types? In a normal shell, everything is a string, but EShell has a foot in both worlds:

$ echo hello world ("hello" "world")

... continue reading