Taking Acme for a spin (update)

Posted on

acme · plan9

I have been running Acme daily now, and thought I'd note down some highlights on the experience so far.

By far the most noticeable adjustment has been writing code in a variable-width font. It’s simultaneously the biggest adjustment, but also the least painful. In this period I’ve been doing work that involves Rust and Python, some devops that involves Kubernetes (editing a lot of YAML), and also solving Advent of Code 2021 tasks in C. Editing languages or markup that relies on whitespace it’s a little daunting with a variable-width font, but being able to toggle the font with simply “Font” makes it pretty much a non-issue. But I find that reading code in a variable-width font is not as big of an adjustment as I expected.

The fact that you can execute any text has the upside that any command you type just sticks around after you’ve executed it. So any “Edit …” commands that are entered anywhere can be re-executed by simple selecting and executing. It stays on the screen, so you can always find it. Compared to Vim, any command that’s executed needs to be recalled somehow to be re-executed.

I think my favorite non-native Acme component to add in is Russ Cox’ Watchhttps://github.com/9fans/go/blob/main/acme/Watch/main.go. It has brought home the importance of automatic feedback whenever you make any changes, and for me personally it strikes a good balance because it’ll only execute whenever I save a file. In Vim, I typically save all the time (I have a convenient keymapping for that), but I’ve noticed that in Acme I tend to save less often. I presume it’s because it requires a little more effort to go from typing, grabbing the mouse and clicking “Put”.

The increased use of the mouse has both benefits and drawbacks. If your mouse is bad then you’ll have a hard time. My primary challenge has been to middle-click when holding button 1 when I want to select and cut some text. Middle-click is not straight-forward when button 2 is a wheel (which these days it very often is). On the thinkpad laptop that I have, the three-button trackpad is somewhat easier to use. Having a mouse with three equally-sized buttons is almost a necessity.

I would like for the up and down arrow keys to move up and down between the lines - that’s probably something that can be patched in the codebase.

I still have to explore the plumbing capabilities - right-clicking on links doesn’t work. I think I need to start “plumber” somewhere and let it run.