- Acme: A User Interface for Programmers. Rob Pike's paper describing the Acme text editor.
- Help: A Minimalist Global User Interface. Rob Pike's paper describing a predecessor to Acme.
- A Tutorial for the Sam Command Language.
Rob Pike's tutorial for the Sam command language which Acme's
Edit
command uses.
- cat-v Acme Fansite
- A Tour of Acme (2012)
- The Tao of Acme (2022)
- On using Acme as a day-to-day text editor (2013)
- Extensibility in the Acme text editor (2013)
- John Floren's Tools page has a section on Acme
- How I program without syntax highlighting
- Let's Try Acme (2014), parts zero, one, two, three, four, five, six, seven, eight, and nine
Scripts, resources, documentation:
- jinyangustc/acme-editor: an Acme setup repository. Many relevant links in the README.
- sminez/acme-corp: an Acme setup repository (fairly elaborate).
- evbogdanov/acme: an Acme setup repository.
- jlouis/plan9-setup: a plan9port setup repository.
- jordilin/acmescripts: Acme helper scripts.
- mkmik/awesome-acme: links to Acme-related tools.
- henesy/awesome-acme: links to documentation, programs useful with Acme, related projects, etc.
Acme has many forks; below is a curated list of forks which implemented something useful or interesting.
- 1g0rb0hm/plan9labs: implements
tab expansion (seemingly an original implementation which is controlled by
extensions to the
Indent
command: it looks like it's done properly) and a MacOS keyboard shortcut, Command-S toPut
. - dexen/plan9port: implements several
arguably useful changes: Ctrl-S to
Putall
, addEdit ,d
to+Error
windows, removeLook
from the default window tag bar, and more. - eaburns/plan9port:
implements CUA key bindings, changes the Acme colors, and tweaks the
windowing growing behavior after a
Del
. - ixtenu/plan9port (my fork): has a custom black-and-gray color scheme, CUA key bindings, and spew's implementation1 of tab expansion (taken from mkhl's plan9port fork).
- karahobny/acme2k: implements compile-time color themes with a suckless-style config.h and CUA-style keyboard shortcuts. Note that is not a full fork of plan9port; it only includes the files for Acme.
- japanoise/acme2k: fork of the above, rebased on upstream plan9port and with a different color scheme.
- karahobny/plan9port: implements CUA key bindings and cursor movement with the up/down keys.
- lmumar/plan9port: implements CUA keybindings and cursor movement with up/down or Ctrl-n/p; also includes the acme2k color theme.
- mk-f/plan9port: implements supports for
specifying a custom color theme in
argv
(from mariusae), addsEdit
to the default tag bar and disables multi-line tags, has spew's implementation of tab expansion (uniquely, also adds support for controlling tab expansion via 9p), and more. - mkhl/plan9port: this seems to have been
the first fork to port spew's tab expansion implementation to plan9port acme.
In addition to tab expansion, this fork implements macOS inertial scrolling,
running an
acme.rc
script prior to external commands, specifying a font for the tag bar (rather than using the primary font), and more. - omar-polo/plan9port: has tab
expansion (spew's implementation), implements CUA key bindings, and changes
the default
Tab
value from 4 to 8. - prodhe/plan9port: implements a
Tabexpand
command (the underlying implementation is not as good as spew's or 1g0rb0hm's), Ctrl-a and Ctrl-e move to the previous/next line if already at the beginning/end of current line, Ctrl-p and Ctrl-n to move the cursor up/down a line, and Command-S toPut
. - sminez/plan9port: implements CUA
keybindings, a
Tabexpand
command (same as prodhe's), and changes the default font and color scheme. - TobiasHeinicke/plan9port:
implements numerous interesting features: a
Nav
command, which causes directory windows to be reused when opening a new directory; aDotfiles
command, which toggles whether directory windows show dotfiles (they are hidden by default); aClear
command, a convenient alternative toEdit ,d
; and more.
Text editors which reproduce (to varying degrees) the look-and-feel of Acme:
- Edwood: Go port of and "drop-in replacement" for plan9port's Acme. Has experimental support for running without plan9port's infrastructure.
- Wily: An Acme-inspired editor for Unix; created in the 1990s, long before plan9port existed. Newest release is from 2006.
- jmigpin/editor: an Acme-inspired text editor written in Go. Retains the simple UX of Acme while implementing advanced features.
- Anvil is an Acme-inspired editor written in Go, using Gio as the GUI toolkit. Supports quite a few features which Acme does not, such as syntax highlighting and editing remote files over SSH.
- A: Text editor written in Go and inspired by Acme; "still in the alpha stage". Not to be confused with davidrjenni/A.
Text editors which are ancestral to Acme:
- Sam: the text editor which Rob Pike wrote prior to Acme. Originally a Unix text editor (for the Blit windowing system), later ported to Plan 9 and included in plan9port. The Plan 9 version was ported back to Unix/X11: a standalone version of that code, updated and extended with new features not found in other versions of sam, is at deadpixi/sam (see also japanoise/sam, a fork with some bug fixes and minor enhancements).
- qed: a Unix line editor.
An enhanced version of
ed
which is programmable and supports editing multiple files. Ancestral to sam. The linked version has been updated to build on modern POSIX systems and to support UTF-8.
Other related text editors:
- vis: a terminal text editor which
combines
vi
's modal editing with the structural regular expressions used by Sam and Acme'sEdit
command. - sim: a terminal text editor "heavily inspired" by Vim and Sam.
Footnotes
-
spew implemented tab expansion for the 9front version of Acme. This implementation adds a
Spaces
command to control whether tab expansion is enabled; it is modelled after theIndent
command. Tab expansion can also be enabled at start up with-i
. See 9front commit 4757debd0b. ↩