emacs

Posts tagged with emacs

A creation-first interface

One of the primary wonders of computing is that creation on a computer is essentially completely free, once you have one – the world of information is a post-scarcity one where the only cost is your time, and that's it. Bits can represent anything, from prose to poetry to images to film to interactive games to music, and bits can be created and infinitely duplicated (taking poetic license here, don't come after me, I know they're technically being modified not created) at zero cost, on your ow

Emacs Lisp really isn't bad

It seems to be common wisdom in the Emacs community that Emacs Lisp is just this terrible programming language that everyone hates, on the level with something like PHP. However, I just don't think that's the case. Emacs Lisp is strongly typed, has an extremely complete and extensive standard library, it has all of the power of a full Lisp including live mutation of a running system, procedural macros, symbolic programming, and homoiconicity, a copy of the Common Lisp standard library (includin

Emacs and the UNIX philosophy, part 2

See also: UNIX, Lisp Machines, Emacs, and the Four User Freedoms.

Each of the main tenets of the UNIX philosophy has essentially a kernel of truth to it:

However, it misunderstands how best to achieve e

Emacs as ultimate retrocomputing hobby

Emacs satisfies all of the preconditions for a retrocomputing hobby:

  1. Long (fourty years), interesting, storied history and set of precursors
  2. Maintains many aspects of its heritage, connecting you directly to that heritage (for instance, Emacs Lisp is a clone of MACLISP, the original Lisp Machine language, that exists nowhere else today)
  3. A vibrant and passionate community regularly making things for/with it just for the fun of it, often some of it actually art (and a long history of th

Emacs should never become multi-threaded

There's a lot of discussion in Emacs community around how Emacs should become multi-threaded. While I think a lot of these ideas are interesting and could work, I think they're ultimately misguided. Most of the fundamental appeal of Emacs is that, at its core, it is a big, huge ball of mud – and by mud, I mean global mutable state. The fact that it's just this huge ball of state that anything can access and modify

Emacs should shell out

There are two approaches to adding tools and functionality to Emacs.

The first one is to take an existing program with IPC functionality or a command-line interface – usually most profitably the latter, for as much as I think the UNIX philosophy is incomplete and short-sighted, the idea of making sure that as much program functionality as possible can be called from the command line, and having everything communicate through text streams, ensures t

Emacs versus Acme

The similarities between Emacs and Acme ( Acme was created as the premier visual text editing environment for the Plan 9 research operating system at Bell Labs) are fascinating case in multiple discovery not unlike both Liebnez and Newton independently discovering calculus: both have the otherwise very unique proper

Gap Buffers

A lot of people criticize Emacs's use of the gap buffer, and suggest that it go with a more complex data structure at the core like ropes. While I think there can certainly be room for improvement with this core data structure, I don't think ropes are a good solution, and I think this is far from a crippling issue. Let me start with the second point first.

One of the biggest arguments against gap buffers is that they're

Imbuing text with meaning

Some of the most important meanings that you can imbue into text, in my opinion, are:

  1. Symbols to label the intended "thing" that region of text is supposed to represent
  2. Data structures representing the structured concrete syntax tree of the annotated text, to easily maintain an identity between the two and retrieve it
  3. Context or related pieces of data, whether textual or structured
  4. Hypertext links

For a concrete example of the first, the package Marginalia looks for any lines an

Living in the terminal vs living in Emacs

The other environment that many tech-savvy people tend to try to live their whole lives in, that offers a coherent integration between everything and a limited but flexible set of core components, is the terminal/shell. I think I've given a fuckton of evidence on this page (and in my blog post on this) that, as a text-oriented computational environment, Emacs is infinitely superior: its component pieces are fully transparent, scriptable, malleable at

On the importance of using what's already in Emacs

One of my biggest pet peeves is people not understanding and making use of all of the powerful functionality that Emacs already provides. (That's why I created Quake Emacs). So many packages have been integrated into Emacs's core, and Emacs itself has been extended with so many incredibly powerful features over the forty years of its evolution, and yet so many of them are poorly documented or marketed, off by default, or badly configured out of

Org is a general-purpose information management hypertext system for Emacs

One of the most common philosophical misunderstandings that I see people have about org-mode is that they assume that it must have a particular intended workflow, like any other literate programming, personal information management, project planning, note-taking, or other similar such system.

This makes sense, since org-mode does represent a cohesive thing, the closest analogue of which, for most people, is some kind of application: after all, it's not just a notation, but a set of interface

SVG Interfaces in Emacs?

One of the really interesting little things that I've seen on the margins of the Emacs world is people making use of the fact that SVGs are a really good medium for drawing arbitrary graphical user interfaces, since they allow drawing arbitrary shapes, colors, gradients, and text, in a way where it is clearly structured and you can assign relative constraints and sizes, and where that structure is coherently maintained instead of being lost when drawn to a pixel image or something, and the fact

Some capabilities of org-mode

I'm never going to be able to describe to you what actually using org-mode is like, because it's one of those situations where there is an extremely, mind-bogglingly powerful tool for enthusiasts and professionals, and a cheap toy imitation that most casual people will end up using that imitates the most superficial aspects of the real thing, but because they don't have enough experience to know any differ

TODO Emacs Tips

The Dao of Emacs, and my mixed feelings on Doom Emacs

One of the most powerful aspects of Emacs is that it can truly become anything you want it to be. This is definitely a good thing, as I've spent a lot of time explaining above: malleable tools give you freedom, autonomy, control over your own computing life. You can shape them to best help your workflow, your thought process, your preferences, your needs (even physical ones). They grow with you, around you, rewarding you for the time you spend with them. They have better longevity, because they

UNIX, Lisp Machines, Emacs, and the Four User Freedoms

UNIX

Unique aspects of GNU Emacs

A general computational environment integrated from inside and outside

To understand what Emacs is, you can look at it in two ways:

  1. The fundamental tool set it provides to users (for scripting and configuration) and package developers. If it was just an editor, that tool set would be limited to a scripting language with access to an API for controlling a pre-made editor interface, and a few minimal ways to connect with or control the outside world. That's because something that's fundame

Why not to use Emacs

I've talked at extreme length on this page about the reasons why I like GNU Emacs, even to the point of defending certain aspects of it that are usually treated as sub optimal even by extremely dedicated users and maintainers of the software. However, I am no fanatic. Emacs has flaws, some of which I think can be overcome, and some of which I think are the inherent consequence of the tradeoffs it needs t