Moving Around Acme

Feb 9, 2019 15:29 · 570 words · 3 minute read Acme Tools Editors Plan9

Moving around in Acme is mostly a matter of the mouse. In this post I’ll cover opening and closing windows and files, and creating new files or scratch buffers. We’ll close with the functionality of the tags, and execution of plain old commands in Acme.

TL;DR

  • Middle-click keywords anywhere to execute them
    • New opens a new buffer
    • Del removes a buffer
    • Put saves a buffer to the path starting at the beginning of the tag
    • Undo… well… undoes.
    • Redo….. COME ON.
    • Exit is where you exit.
    • Putall saves all the windows
    • I never use Dump, but it saves the state of the editor.
  • Middle-click shell commands to execute them
    • If you need parameters, select the whole thing you want to execute, then middle-click that
  • In the absence of a middle mouse button, alt+click is equivalent to middle-click.

Opening windows

See in the following video, me, opening a window. All that happens here is that I middle-click the word “New” in the current column’s tag. A cool thing is that you can essentially type “New” anywhere, middle-click that, and boom, new buffer.

Note: If your mouse doesn’t have a middle button, like my touchpad, Alt+click does the trick.

Closing windows

Exact same deal, except, instead of middle-clicking on “New”, you click on “Del”.

Bonus round: Saving the content of a window.

If you want to save the content of the window, you need to make sure it has a filename by typing one in the first column of the tag. The file’s location is going to be relative to Acme’s working directory, or you can make that absolute. Once you give a window “a name”, the keyword “Put” will appear. Middle-click “Put” to save the associated window.

You: I think I see a pattern

You’re not crazy. Middle-clicking keywords make some actions happen. Any of the pre-filled tag actions, actually. BUT WAIT THERE’S MORE.

You: What do you mean, more?

You have to hang around until the end for that.

Opening existing files

If you start Acme without providing a filename, it will pop open with a window listing the content of the current directory. If you instead specify a directory, it will list the content of that directory. Boring detail, moving on.

If you right-click a file or directory name in such a window, it will pop a new window with the content of what you clicked. You’ll notice your mouse cursor will be TELEPORTED TO THE LOCATION OF THAT WINDOW. AMAZING. Deleting windows also teleport your cursor, under some conditions (that I will not specify because reasons (yes, I know one of the reasons is “I don’t know all the conditions”, shush, you’re making me look bad (Hahaha, I’m joking, I was just testing if you were paying attention (… no, I really do not know all the conditions, just that usually it “is useful”))))

Executing shell commands

Whaaaaaaaaaat crazy it’s like I told you there was more!

Turns out, if it’s not a special keyword, middle-clicking a thing will try to execute it from your preferred shell. That’s cool and all, but sometimes you need parameters.

You: What ever shall we do?

Calm yourself, first of all. Secondly, just select some text (anywhere) and middle-click the selection.

See example here:

I’ll go into more details about text selections in the next episodarticle.