The Emacs for everything obsession

If you poke around the Emacs community, you’ll quickly find some—all right, loads of—users who want to do everything in Emacs. Not just writing, not just programming, not just publishing their blog. No. They want to read and write their email in Emacs. Read their RSS in Emacs. View their PDFs in Emacs. Manage their tasks and their calendars in Emacs. Browse the web in Emacs, even though as far as I can tell the options for doing so range from bad to bad.

Before I got into Emacs myself, this struck me as profoundly weird. As both an old Unix user and an old Mac user, “the best tool for the job” has become deeply ingrained. Emacs is excellent at text manipulation and at leveraging its Lisp machine heart for a remarkable level of extensibility, but surely that doesn’t make it the best tool for everything you can possibly wedge into it. Does it?

As I started writing this, friend and former coworker JCS posted Living in the Browser vs. Living in Emacs in his very Emacs-focused blog; he is one of those “Emacs for as much as possible” types, and explains why (and why it’s better than being so focused on the browser):

When I’m in Safari there’s not much I can do to adapt it to my way of working. Sure, there are some UI adjustments and other settings to tweak […] but basically I have to work the way the browser authors thought I should. Even if I were using, say, Firefox, which is open source and theoretically open to user change, browsers are sufficiently complex that user modifications are not a realistic option.

Emacs is different. Even putting aside its extensive user level configurability, it’s easy to modify the way any particular function works. You can make your desired changes, install the source in your init.el and those changes will be reflected whenever you load Emacs. Similarly, you can write entirely new functions in the same way. You don’t need to understand everything about Emacs to do this, only enough Elisp to express your desired behavior and a few simple rules to install it.

I’ve also found this to be true—yet it also explains why there are tasks I’m not interested in stuffing into Emacs.

As I’ve written before, Emacs is manifestly not a Mac-assed Mac app. It’s a native app, and it adopts more Mac conventions than your average Electron app does (it even works with the Services menu, mostly), but that’s not its forte. This isn’t a knock against Emacs; when it comes to text manipulation, it kicks all kinds of ass, and I do find myself wanting to move all those tasks inside it. I don’t want to just replace Panic Nova and BBEdit, I want to replace Ulysses and Scrivener and Plottr. (Okay, technically I replaced Scrivener with Ulysses, and Plottr is a weird visual timeline app, but the point stands.) This isn’t trivial. I’ve long asserted that editing prose is fundamentally different than editing code. Ulysses understands the difference intrinsically; Emacs needs to be taught. But other code editors can’t be taught. For instance, I regularly use one of Ulysses’ most wonderful features, the ability to copy Markdown to the clipboard as rich text; I spent about an hour hacking that together in Emacs. I have that saved as a GitHub gist here. It works with Org, too, and has functions for copying Org/Markdown as HTML and Org as Markdown. I’m still working on using Pandoc to replicate Ulysses’s exporting features, but I’m sure it’s not only possible, but will probably end up being a little more featureful and flexible than I could do before.

For tasks that aren’t editing, per se, but still text manipulation, Emacs also kicks ass. Sometimes its solutions aren’t pretty, but they’re always extremely functional. Magit is as good a Git client as you’re going to find anywhere else. The built-in Ediff is, as traditional for Emacs, saddled with a somewhat inscrutable UI, but it’s an amazing three-way merge tool (and Casual Ediff gives it a more scrutable UI if you want it). Tower and Kaleidoscope are terrific Mac-assed apps for those purposes, but are they $195 per year better? Cue someone explaining how $195/year is trivial if you’re a Professional. Let me offer a well-considered rebuttal: oh, shut up. If you’re already using Emacs, the answer is no—and I know of people who use Emacs only for Magit/Ediff, just like I know of people who use it only for Org mode (the plain text outliner and task/agenda manager).

But while reading mail, RSS reading, and PDF viewing are all about text, they’re not text editing, and to me that makes them fundamentally different. For one thing, I’m often doing them on the iPad or iPhone, where Emacs isn’t available; more importantly, though, I don’t want to read long articles sitting at my computer desk. I want to read them on a couch, on a tablet or e-reader, using something that’s typographically pleasant. To me, that’s Unread or Instapaper. As for email, obviously Emacs is a great mail composer, but it’s not a great mail viewer, and I do more email reading than writing. If you’re the sort who uses Org mode as not just your task manager and outliner but your DEVONthink, it may well still be worth it for that integration. I’m not, in part because I need my task manager to be well-integrated with the whole Apple ecosystem rather than the Emacs ecosystem.

And that’s worth keeping in mind: a lot of the arguments for “Emacs everywhere” I see are arguments for how well different Emacs packages tie together. It’s absolutely true, but I’m on a Mac, where the combination of Shortcuts, Automator, Services, and third-party utilities like Alfred and Keyboard Maestro can tie everything together. Org-capture sounds great, but I have “Things capture” everywhere. It’s trivial to turn things into Apple Notes or Tot scratchpads. I use Org where it makes sense to me—:keeping track of tasks at work, where I am in front of my Windows PC 100% of the time. I’m experimenting with using it for story notes and plotting as an alternative to Plottr, which I love in spirit, but find unbearably ugly design-wise. I suspect I’ve learned enough Org at this point, though, to confirm that for my personal task management, it won’t beat the Mac-assed system I already have in place.

I’m wise enough to never say never about moving more things into Emacs; it’s possible I’ll eventually jump through the hoops necessary to set up Emacs as a mail client and see if I like it better than MailMate. But I might try MailMaven, too; one of the things I don’t like about MailMate is that even though it is a native app, it doesn’t feel very “Mac-like,” and I’m going to go out on a limb and guess Emacs isn’t going to improve on that. A lot of the other things Emacs can do are things that I don’t see much advantage for me except in specific contexts. “But you never have to use the mouse” isn’t a big draw for me. For one, I have Alfred, so I can do a lot without using the mouse trackpad if I want, and for another, sorry: I like using the trackpad. I’ve been using pointing devices for decades, I’m pretty good with them, and I think keyboard-only jockeys frequently undersell their virtues.

Now, though? I’m going to run a spelling and grammar check on this blog post, preview it, publish it, and commit it to my Git repository, all here in Emacs. I may not do everything in this program—but I don’t find myself closing it very often, either.

Back to Articles


To support my writing, throw me a tip on Ko-fi.com!