Emacs as a computing environment

CaTegory:

,

Emacs is customisable to a ridiculous degree, so much so that given enough time and energy, a computer user can achieve just about anything inside the confines of a single application. Perhaps confines is the wrong word? A confinement suggests limits, and there are only a few areas of a computing environment of 2026 in which this uberapp is not able to work. Places where Emacs isn’t the ideal tool offer the user a choice: either accept some mild inconvenience (like not having JavaScript render web pages), or use a specialist tool that can be customised as much as possible to make it as compatible with an Emacs-based workflow.

A case in point is web browsing. It all depends on what one wants to do on the web. I primarily use the web as a source of information, and my preferred medium is the written language. For this, Emacs usually proves ample, rendering even the worst excesses of web design down to the bare bones of text. Sites that have sacrificed content for the sake of style are stripped bare, often exposing the paucity of information therein. For sites that can only be rendered in a modern GUI browser, there are enough ways to in Emacs to invoke the external browser application, and pass information between the carefully-honed comfort of Emacs and something like Firefox.

Why cling to Emacs in all but the most extreme reaches of the computing experience? The customisability of Emacs means that a user can set every element to a particular preference, and keep those same choices just about everywhere. Imagine setting up a working environment exactly to your liking, and then being able to apply that environment (behaviours, keyboard shortcuts, fonts, appearance, input methods etc.) to email, web, text, RSS, code and scripting, social media, note-taking, calendaring, chat apps and so on. The beauty of this is that you only have to learn one thing – which you define according to your taste – and use it everywhere. The muscle memory that computer users develop in their favourite app can be the only muscle memory they ever need to develop. Why is that a Good Thing? Well, the better the muscle memory, the quicker things can get done. Here’s an example.

In the office suite I use, I know that Control+H invokes Find & Replace. In my File Manager, the same key combination hides or shows hidden files. In a web browser, Control+H shows browsing history. Each application also looks different from the others, and the commands to hide/show, find/replace or toggle browsing history are to be found in different menus. Given enough time and effort, and the goodwill of each application’s developers, it may be possible to change three sets of preferences so that Control+H invokes much the same command, or some analogue: Control+H in the File Manager might invoke a list of recently accessed files, for instance, to keep it analogous to a browser history.

Given even more time and effort, it might be possible to make the File Manager, the web browser, the messaging application and the office suite use a favourite layout and colour scheme. A lot of people do dedicate the necessary time and effort to achieve something approaching this – see r/ricing and r/unixporn for examples. But as the meme said, ain’t nobody got time for that.

With Emacs’s customisability and extensibility, one can be ‘in’ a File Manager, a web browser, a messaging application and an office suite, but stay in the same place, with the same commands, layout, behaviour and appearance everywhere. Sounds good to me! And when I’m given absolutely no choice but to use an external application, streuth but it’s slow! I often end up shouting, “How do people live like this?”

For instance, in Emacs, I have keybinds to move forward or back one character, one word (or code expression), one sentence, one line and one paragraph (or code block). These are keyboard shortcuts baked into my muscle memory, all accessed by the ‘home row’ on a keyboard. If instead of moving forward/back a word/character/paragraph/line etc., I want to delete the word/character/paragraph/line etc., I hold down an extra modification key in addition to the usual key combination. Or to highlight the word/character/paragraph/line etc., I hold down another mod key.

Now, switch that mindset and muscle memory to an external word processor application. Like a savage, I have to use a mouse (or trackpad) and mouse click to highlight text, or user the arrow keys to move the cursor around, then delete the word/para/line/sentence etc. What’s ironic is that a word processor is, comparatively, a second-rate tool when it comes to processing words.

A few edge cases make a great deal of difference, too. Take the capitalisation of words. In Emacs I have set up ALT+C to Capitalise A Word (or I highlight a block of text and ALT+C to capitalise all words). Conversely, ALT+L lowercases a word (or selection of words). Then I have another keyboard shortcut to capitalise the first word in a sentence, but lowercase the rest of the sentence. Three key presses render this sentence into something sensible in less than a half a second:

Although each word may be edited with a Word Processor, it takes too much time for the busy Executive or Manager.

…becomes…

Although each word may be edited with a word processor, it takes too much time for the busy executive or manager.

Given that this process alone is something I happen to do maybe a hundred times a day, I save myself enough time to knock off early and play Baldur’s Gate.

The more you use Emacs the more you realise quite how repetitive a great deal of computer use is. Many many processes or events that need to happen many times each day can either be automated, keypressed, macro-ed or scripted. All the details and preferences for time-saving shortcuts of one sort or another are crafted and recorded in Emacs, and applied everywhere. Like filling out web forms, or sending an email, or responding to a message, or adding a calendar item.

What’s that you say? You can achieve much the same time saving, efficiency and overall speed by using your agentic AI assistant? I wish you the best of luck with that.