Back in late October of last year The Setup published an interview with Rob Pikes, in this interview he discussed the acme editor from Plan9 which he described as a editor-shell-IDE-oddball with a link to a screen cast by Plan9 from User Space maintainer Ross Cox demonstrating some of acmes features.
I decided to give it a try & downloaded the source code to build on Mac OS X & I was running acme in without any build issues.
As you’ll hear mentioned in the video, acme was designed with a three button mouse in mind, I was on single button old MacBook Pro with a trackpad. I found it difficult to follow the video as I couldn’t work out how what was what, using the keyboard to modify a single click behavior.
I dug out a three button mouse & things went much better using that, but now I was in a situation where I had several pointing devices on my desk which I didn’t fancy switching between depending on the application I happen to be running.
So I gave up on acme on Mac OS & tried it on my ThinkPad, I was unable to compile
devel/plan9port on FreeBSD-CURRENT back then & revisiting last night it still appears to be broken in the release from the 5/1/2013, I switched to Windows & attempted to install inferno but didn’t have much luck with the build process there either, searching around I came across acme-sac which is a standalone bundle of the acme editor taken from inferno with pre-compiled binaries available. Only problem then was that as I do not work in windows normally I rarely got a chance to fire it up & eventually forgot about running it all together.
I’m currently in Moscow & enjoying the Russian new year holiday, as I have spare time I decided to revisit acme again & see if I could find out how to interact with acme using a single button mouse on an Apple pointing device.
On Mac OS, the button on your magic device or trackpad on your laptop = button 1, alt + click = a button 2, ctrl + click = button 3.
You can reproduce the display of labels shown in the video demo by declaring
It seems that it’s not currently possible to address the issue of a 2-1 cord, which allows you to pass arguments to commands. This is where you hold button 2 & press button 1, it’s not a show stopper as you can work around the issue but merging the text you want to connect together before executing on a scratch area.
Now that I am not trying to perform actions which cannot be done with a single button, I’m at a level where I can copy/cut/paste, search, pipe text in & out of commands & save edited text.
So for example I’m able to write a basic hello world program, write it out to a file, pass the file to a compiler, execute the produced executable & display it all within acme.
Note: Plan9 from userspace comes with its own version of some common tools which depending on how you search path is declared in your shell, may override your existing tools that you’re familiar with eg diff, man & ls.