Hello, acme(1)?!

Around this time last year, I became transfixed by the charming allure of the standard editor. While I’ve since been using it for this website and general text editing tasks, now I report that a new Bell Labs editor has earned my affections: Acme.

If ed(1) is the standard editor — a fair thing to say because its small scope makes it easily implementable by a single developer — then Acme would be the last word in text editing. Like ed(1), it is built in such a way that it integrates easily with all of the surrounding text utilities on your computer. You can insert the output of commands into the file you’re working on. You can write the contents (even partial contents) of your file into arbitrary commands. Unlike ed(1), in Acme you can edit your current file pretty arbitrarily. On a first glance, it seems to work much like something like Notepad. Mainly navigate a file through the mouse, there are minimal keyboard shortcuts, and yet its built-in text editing facilities surpass most IDEs.

The trick with Acme is that by using the middle button on a mouse, you can highlight a span of text in a file to invoke it as a command. For common functionality like find and replace, I can just type out ( Edit s/old/new/ ), highlight the text where the replacement should be applied, then middle-click sweep the edit command to apply the substitution. Of course, this isn’t intuitive, but what Acme loses in intuitiveness it gains in usability. No fumbling with arcane keyboard combinations for this one.

What’s more, if you’re familiar with ed(1) or vim, the command language is just very easy to pick up. Additionally, commands aren’t hidden in some kind of menu that you need to fumble around in. It’s all text, so naturally you find it in the very short manual.

Seriously, the manual for this editor is 9 pages long when printed.

I’m fighting back a great urge to describe what Acme does better than both the overbloated IDEs and the more minimalist tools I love. Suffice it to say, I can see this program replacing both ed(1) and vim to become my #1 main text editor and development environment both at work and for personal use. It’s powerful enough to replace vim while still being far simpler than ed(1), and it took me I think just a few hours of usage to reach vim levels of productivity.

How is that possible?