riffing with acme


There are many editors, you’ve probably heard of vi and acme of the yesterdecade the epicenter of the editor holywars and newer “electron” based endavours like atom and vs code for the crowd with more physical memory than sense. But for my1 money

No editor made, pretty much anywhere,
surpasses our Acme in shape, material or finish.

If you don’t know what acme is, here is a tour of acme

For those of you in the know plan9 and therefore acme do rely heavily on mouse usage, most actions are preformed by mouse chords and there are a handful of keybaord shortcuts in acme that were mostly added by the community. There is a whole page dedicated to this issue in the plan9 wiki.

So now that I have alienated all the code and atom users, allow me to do perfrom the sacriligious act of adding “riffing” to acme and alienate everybody. Riffs in acme “refers to a brief, relaxed phrase repeated over changing buffers”.

start by adding a new function definition;

typedef void (*rifffunc)(Text*, Rune);
Fun times with function pointers, Inc.
struct Text
    // ...
    char    dir;

+   rifffunc next;

    uint    iq1;    /* last input position */
    // ...

the keen eyed will notice this is the start of a state-machine.

music and stuff
music and stuff

  1. acme2k