The Acme User Interface for Programmers
Acme is a powerful text editor, development environment and textual-user-interface platform developed by Rob Pike originally for Plan 9 from Bell Labs research operating system, and now has ports available for all major platforms.
Implementations and Ports
- The primary implementation as part of Plan 9 from Bell Labs (originally implemented in the Alef programming language, and later rewritten in C using libthread.)
- Plan 9 from User Space port of most Plan 9 user space tools to *NIX systems.
- Acme Stand Alone Complex (aka acme-sac) rewrite in Limbo to run on the Inferno virtual machine that can run as a standalone application on Plan 9, POSIX, or Microsoft Windows.
- Updated build of pf9, reported to work on 64-bit Windows.
User Interface
Acme has a very peculiar user interface, it has a minimalist set of keyboard shortcuts, and makes extensive use of ‘mouse chording’. For details see:
If you are used to more traditional text editors (mode oriented like vi, key combination oriented like Emacs, or mouse menu oriented like most Windows editors), acme can be frustrating at first, but with an open mind and after some practice mouse chording will become second nature and you will miss it everywhere else.
Documentation, Manuals and Papers
- The Acme Readme.
- Acme: A User Interface for Programmers - The original paper by Rob Pike.
- acme(1) - Commands: acme, win, awd, interactive text windows.
- acme(4) - The file system interface: control files for text windows.
- Help: A Minimalist Global User Interface by Rob Pike - A paper describing the predecessor of Acme.
- A tutorial for the sam command language - Used by acme’s Edit command.
- A Tour of Acme - Video tutorial by Russ Cox explaning the main features and principles of Acme.
Applications
Some of the applications written to take advantage of the acme user interface are included in the standard Plan 9 distribution and can be found in their corresponding directories at /acme/*
:
- Wiki - An acme interface to wikifs.
- Mail - An email reader using upas/fs.
- News - An NNTP newsgroup browser using nntpfs.
- adict - A dictionary.
- aspell - A spellchecker.
External Apps
Acme apps not found in the Plan 9 distribution:
- xplor - A tree-style file system navigation app written in Go. By Mathieu Lonjaret.
- calc - a simple spreadsheet/calculator app. See this blog post for more info. By Bill Burdick.
Scripts
Useful shell scripts to make some tasks in acme easier:
- Agofmt - To
gofmt
your Go files. By Micah Stetson.
Contact and Community Support
Notable Acme Users
- Dennis Ritchie
- Russ Cox
- Rob Pike (obviously)
Screenshot
Related projects
- Omero: A more generalized user interface inspired by acme, including support for graphics applications, part of the Octopus project.
- Wily: An acme clone for *nix systems, mostly deprecated thanks to the ports of the original acme as part of p9p and Inferno.
See also
- The Sam Text Editor, also by Rob Pike.
- emacs(1)
- vi(1)