The road to Emacs maximalism

3 min read Original article ↗

A couple years ago I've started watching David Wilson's channel (also know as SystemCrafters), originally his channel focused heavilly on F# (and that's how I found him), but eventually he started posting more and "GNU slash Emacs" content. I lost interest on the channel at the time, while he did indeed showcase a level of productivity that was way above what I had, I felt like it could be easily emulated with a combination of Neovim and some other Linux tools.

Everything changed once I saw his presentation about org-roam, my brain got hijacked by the idea of testing Emacs. I had previously heard about orgmode before, but it was never on my radar since it felt like some "Emacs weirdo" cool-aid. What got me impressed was that I always needed some tool to help me organize my notes (specially during college where most of my annotations got lost). To fill this gap, such a tool would need to have the following properties:

  1. Document everything that I've done.
  2. Register and link everything that I've read, preferably by integrating:
    • Text
    • Math
    • Code
    • Citations
  3. Manage and track figures, while maintaing referential integrity.
  4. Be free (as in freedom) or open source.

Obsidian tickles most of these (if you consider its plugins), but the license is a little bit worrying and you can bet they will pull an insomnia in the future. Logseq is a much better alternative in this regard, plus you have the option of using something much better than markdown or reStructuredText, and that is org.

(…) trivial usage of Org-mode is nothing more than text editing, from which point the user can start to add special plain text Org-mode elements to the document. Org-mode is therefore easy to adopt and aims to be a general solution for authoring projects with mixed computational and natural languages. It supports multiple programming languages, export targets, and work flows. (Schulte et al. 2012, 2)

Org is a major mode in Emacs, it is also a powerful markup language and I would argue a better tool than any of the current alternatives. If properly configured, orgmode can combine writing, planning, scheduling, linking and programming into a cohesive workflow.

Org-mode extends Emacs with a simple and powerful markup language that turns it into a language for creating, parsing, and interacting with hierarchically-organized text documents. Its rich feature set includes text structuring, project management, and a publishing system that can export to a variety of formats. Source code and data are located in active blocks, distinct from text sections, where "active" here means that code and data blocks can be evaluated to return their contents or their computational results. The results of code block evaluation can be written to a named data block in the document, where it can be referred to by other code blocks, any one of which can be written in a different computing language. In this way, an Org-mode buffer becomes a place where different computer languages communicate with one another. Like Emacs, Org-mode is extensible: support for new languages can be added by the user in a modular fashion through the definition of a small number of Emacs Lisp functions. (Schulte et al. 2012, 7)