Emacs logo from the Wiki

A rare positive result of the lockdown - increased friendship towards my editor of choice. After explaining configuration basics to a friend another day I think I can finally formulate what clings me to this ancient everlasting piece of software.

Code

Well, yeah, first reason: code developing tool. Major modes for almost everything that deserves a title of programming / scripting / markup language out there. But not only.

Take Language Server Protocol for introspection where you did not expect any. Projectile and magit to manage the state of the project. Even in vanilla emacs there are handy tools for development, including local variables and version control (useful for versioning systems other than git).

Then, amidst the lockdown madness, find out that all of this works on remote machines too through TRAMP. Yes, the same precious editing environment that took you so much effort to assemble. Awesome, isn't it?

Compose

Skipping the obvious (autocompletions, spellchecking, etc): Org-mode. Now a built-in part of vanilla Emacs, it's the greatest get-things-not-forgotten tool. It powers my private log, work and accounting notes and literally any documentation set that I compose.

It does not power this static blog for reasons I cannot well explain. Somehow I thought that tweaking a different static site generator would be faster than making Org export look fine and not at all crappy. I still do think so by the way.[1]

One distinct remarkable feature of org-mode is a support for fashy literate programming in the most literate way. Not only does org-babel have a big number of supported languages for source blocks - one can also join them in pipes.[2] Even those that need compilation! I one can feed an output of a C-block as an output to a Fortran-block within a scope of one document. This is possible because the medium here is the contents of the document itself, not the state of underlying interpreter "kernel".[3]

And of course for a researcher it is hard to find better citation system than John Kitchin's org-ref. It allows one to build her own collection of papers that is visible in org-mode buffers for note-taking and draft-editing. Charming!

Communicate

Mu4e for emails, telega.el for Telegram. Those cover the majority of the daily communications I do at the moment.

Most of other media accounts can be accessed through bitlbee + erc (Emacs built-in IRC client). The list is impressive, including Skype, Fb, Discord and Steam. Ideal to keep all this social rubbish in one place for chatting over weekends.

For those old-fashioned like me who still manage their lists of RSS subscriptions, good news: no need to stop, since there is elfeed and elfeed-org.[4] By the way, its author Chris Wellons writes an interesting blog about emacs' internals and other curious stuff. A good candidate for your refreshed feedlist.

Dark secrets revealed

If you are looking for the "dark secret of emacs", I can name a couple.

The first one lies in the prodigious extensiveness of the editor by design, which, over time, led to a series of really good plugins that have a great level of synergy among themselves. I list some examples above. Together they aid me with three daily activities: Coding, Composing and Communicating - within one universal editor.

Why does it matter? The answer is, of course, all of these tasks deal with manipulation of textual data. And a second glance on it reveals that emacs to date is maybe the best textual UI tool. Some push this idea to extreme limits, somewhat materializing the famous joke about an "OS without a proper editor".

I am not THAT zealous, but myself I find useful unifying the text-processing tasks. Being able to store an IM conversation branch as a diary entry, email the bibtex citations to colleagues and blog about all this without leaving an editor's window may sound like an overkill, but after a while it feels quite essential. It's all text after all!

Emacs has it's flaws and legacy anchors. (My biggest personal regret is that it still uses a somewhat clumsy emacs lisp language with some Common Lisp -like features instead of normal support for CL-standard). Yes, emacs is not perfect, let's say it is just very good. Or "the worst editor out there, except for the rest ones", if you prefer.


[1] Well, in fact I intentionally searched for (and found!) a Common Lisp static blogging platform package, because StumpWM. But that is another story for another time, maybe...

[2] John Kitchin showed another method, with tangling and linking through a makefile.

[3] Though session can often be specified where it makes sense.

[4] Myself I keep a setup of emacs+elfeed on my GameHat handheld, "showcased" in the welcome post XD. That guy also deserves a story.

Unless otherwise credited all material Creative Commons License by Vladimir Dikan.
Powered by Co╬╗eslaw. Design elements' artwork created with MagicaVoxel.