1. 9

  2. 6

    ACME is an old text editor from Plan9 and Inferno. Acme-SAC is essentially ACME on top of a modified Inferno virtual machine. The VM is extremely light weight. OSX users can download the AcmeSAC-0.31.dmg from here.

    If you do not have a three button mouse, and on a mac, Option + click is middle click and Command + click is right click. To do a middle click and drag select, click at the starting point of the portion you want to select, then holding command, click the end point. The remaining is explained in this video. If you do not like videos, here are some links to get you started. On the default window opened, due to the age of implementation, some of the functionalities do not work. E.g charon (the web browser) does not seem to open https sites even though it should (in principle). Finally, the keyboard shortcuts detailed here should be of some help.

    The interesting part is that you can run win and get a shell on ACME-SAC that lets you interact with the underlying shell (a variant of RC shell) and operating system (Inferno). The shell is pretty cool in that the environment for any program is accessed by the directory /env. Each variable gets a file. You can modify the variable by directly writing to the file. The shell does not re-parse the values. Hence what you write is the value it will have. The shell is rather advanced, and different from the Plan 9 shell. Here are some of the resources on using that shell. Each program gets a new /env mounted with a copy of its parent environment. So any modifications will be visible only to its children. The OS uses union mounts to perform interesting things. See here for an introduction. The limbo compiler (a predecessor to go) is also available from the command line.

    What motivated me to submit this was the recent story on Hull – an alternate shell (yet to be implemented). The Inferno and Plan9 shells are very interesting case studies in how a shell should be implemented.

    I also feel that ACME represents the best line of editors that can be adapted for a touch environment without losing its functionality significantly (by converting the mouse chords to touch actions).

    The development of ACME-SAC has unfortunately completely stopped. However, it is still interesting, and is runnable on modern systems.

    1. 4

      I have used ACME-SAC for years as my cross platform editor at work. It’s nice and easily extensible. It’s small there is also a nice textbook by Brian L. Stuart using Inferno (and Linux) teaching OS design which will explain the inferno design further.

      I can highly recommend having a look at it.

      1. 2

        Thank you for responding! I have tried to use Acme-SAC multiple times as my main editor, but got stuck again and again. I will check out the textbook by Stuart that you suggested to understand how it all fits together.

        What is the base system you use ACME-SAC in? and have you been able to update it with the latest inferno sources? and what are your plumbing rules like?