Living in the terminal vs living in Emacs

Living in the terminal vs living in Emacs   emacs personal

The other environment that many tech-savvy people tend to try to live their whole lives in, that offers a coherent integration between everything and a limited but flexible set of core components, is the terminal/shell. I think I've given a fuckton of evidence on this page (and in my blog post on this) that, as a text-oriented computational environment, Emacs is infinitely superior: its component pieces are fully transparent, scriptable, malleable at run time, far better integrated, can communicate using a better data format, and so on, and Emacs itself is a far superior shell. Here are a few more reasons:

  • While terminals are out here emulating dot matrix printers from 1982 (that have to split images up into character-sized sections and only support 6-bit color, can't be interacted with, and need to be transported as ANSI escape codes in-band) in order to get image support, Emacs can represent clickable, draggable, hoverable, right-clickable, etc arbitrary UIs with SVGs (see the next section), rich text, images, PDFs, clickable buttons, and more.
  • While shells are trying to use ncurses and readline to give you some kind of acceptable autocompletion support, Emacs can give you the full power of your IDE in your shell.
  • TUIs in the terminal all have to manually hard-code keybindings, instead of exposing their functionality as commands that can be arbitrarily remapped by the user at the computational environment level, which also means that while Emacs can guarantee consistent keybindings, users of TUIs just have to hope that everyone agrees on a common standard (and interprets it the same way).
  • TUIs are not usually very scriptable or interoperable under a terminal, so you have to choose between a teletype level interface (shell commands) that offer scriptability and interoperability, or an MS-DOS level interface that offers none of that. Emacs can offer you TUIs that are fully as interoperable and scriptable (even allowing you to take the UI generated by one application and hand it to another, or export it yourself for manipulation and editing, or have multiple interpreting and working together in the same UI).

If you've ever felt the desire to live in the TTY, consider living in a fullscreen Emacs window (or EXWM) instead.