A free/libre text editor that has so much functionality that it’s often joked about being an operating system that has an ok text editor.

See also:

  • Time Saved Using Keyboard Shortcuts

    I use Alfred to switch between applications using keyboard shortcuts. On average, I use Alfred 127 times per day, mostly to use keyboard shortcuts.

  • Linting Prose in Emacs

    There are a few ways to get linting of prose (grammar and style, not just spellcheck) in Emacs. Unfortunately, there is no good language server implementation for the popular open-source command line tools. The best option right now is probably proselint, but vale gives better suggestions.

  • Using Vale With Emacs for Prose Linting

    After looking into linting prose in Emacs, I found a way to roll your own prose linter setup using vale (an extensible prose linter), efm-langserver (a generic language server), and eglot (a language server mode for Emacs).

  • Org-Roam-Ui Helps You Peer into Your Brain

    The org-roam-ui is a visualization and exploration companion to org-roam. The force-directed graph of notes (nodes) and links (edges) shows how concepts fit together and relate. I thought it was primarily eye candy, it’s useful for 1) spotting connections you haven’t already made and 2) identifying orphaned notes that could be linked to other notes.

  • How to Take Smart Notes (Literature Notes)

    A book by Sönke Ahrens about taking notes to improve productivity and writing.

  • Chatgpt Lowers Barriers to Building Small Projects

    After using it for a few coding projects recently, I find that ChatGPT is a great way to lower the barriers to building smaller, self-contained projects—things that have been hiding in your to do list that take a bit too much effort to attempt but is still a good idea.

  • Emacs in the Browser Using Codespaces

    Using codespaces, you can open a web-based VSCode session, open a terminal and install emacs.

  • Emacs Is the Ultimate Editor Building Material

    Emacs is not a great text editor in and of itself—it’s a building material for the best text editor you can make for yourself.

  • Setting up Typescript and Eslint With Eglot

    Using TypeScript with eglot in Emacs is fiddly to set up. I also prefer using eslint as a plugin to typescript-language-server so no other setup is required. Together, this makes for an extremely portable setup with minimal fuss which is the whole point of the language server protocol to begin with.

  • Org-Mode Inline Macro in the Buffer

    In org-mode, macros can be used to expand text but are only visible when exported. However, by combining org-macro and emacs' built in font-locking system, you can expand macros inline in the buffer.

  • Org-Ai Emacs Integration

    I built org-ai using Python which exposes a chat interface through a simple CLI. This makes it a bit clunky when using it from Emacs—I would need to open up an instance of a terminal, activate the virtual environment, and execute the program to start the chat.

  • At Mentions for Org-Mode

    A pattern I really like in Notion is that you can a @ (at) mention any page with search as you type and autocomplete. I’d like to do something similar in org-mode so that I can quickly link related headlines.

  • Principles for Living a Rich Digital Life

    I’ve been thinking more about how to live a rich digital life and what that means in a world of abundance. The following is a work-in-progress list of principles that are starting to form. (Epistemic status: low).

  • Using Grammarly With Emacs

    There’s now an official API for Grammarly and a language server. That means we can use eglot to get Grammarly in Emacs buffers. Here’s the setup which mostly works.

  • Using Chatgpt With Emacs

    There are a few packages and libraries that are being built to use ChatGPT along with Emacs.

  • Emacs and Chromadb

    The nice part about ChromaDB is that you can read the tables in SQLite using the new Emacs 29 sqlite-mode. That means there is no other configuration for accessing the database, you can open the sqlite file directly.

  • Turn Emacs into a Focused Writing Tool

    Emacs can be customized to create a beautiful, focused writing environment akin to Ulysses, iA Writer, Bear, or other minimalist markdown editors.

  • One of One Software

    I would guess that a significant amount of software is written for one person and we should celebrate it more.

  • Web Browser in Emacs

    There is a builtin emacs web browser (eww) but it’s text-based. There are a few options for getting an actual browser in emacs.

  • Codespaces and Emacs TRAMP

    While you can use Emacs in the browser using Codespaces, it involves getting all of your emacs config set up on Codespaces. By using the GitHub CLI you can also use emacs TRAMP over SSH to work in the Codespace instance from your local emacs.

  • Using a Language Server in a Docker Container

    Projects that use docker for local development run into a problem when trying to use language servers with their text editor—they don’t handle multiple environments.

  • Org-Mode Export to Notion

    I use org-mode for taking notes and keeping track of tasks. I use Notion for work as an internal wiki.

  • Emacs Natural Title Bar With No Text in Macos

    To make emacs more modern looking in v26, you can enable a “natural title bar” (the color of title bar matches the color of the buffer).

  • Defadvice Is Text Editor Superglue

    The Emacs advice system lets you modify the code running Emacs in a simple way. For example, if you wanted to change one line in a package you use to do something different or fix a bug before the maintainers release a new version, you can “advise” code to do what you want.

  • Capture Output of Chatgpt-Shell in Org-Mode

    I’m messing around with ChatGPT in Emacs and I want to capture the results of a session in org-mode. Since chatgpt-shell is just a buffer (like everything else in emacs), we can write an elisp source block to grab the contents of buffer. Even better, we can tell org-mode to export the results as a markdown block since the code examples all use code fences (the triple backtick).