Acme editor notes

2022.03.06 | tags: plan9

acme

Resources

Mouse

Acme needs a 3-button mouse to work properly. All buttons can be used to select text, but their function is different upon release. The left button is used for just selecting text. The middle button is used for executing text. The right button is for searching text and loading files or directories. Text doesn’t have to first be selected when using button 2 and 3 (middle and right) if the selection is only one word.

Acme also makes use of mouse chording (e.g pressing more than one button).

Button 1-2 Cut.
Button 1-3 Paste
Select text + Button 2-1 Execute with selection as argument.

Move around

:2 Go to 2nd line.
:0 Go to beginning of file.
:$ Go to end of file.
CTRL-A Go to beginning of line.
CTRL-E Go to end of line.
CTRL-F Filepath autocompletion.
Edit = Find current line number.

Search and select

:, Select all lines.
Edit , Select all lines.
:1,5 Select lines 1 to 5.
Edit 1,5 Select lines 1 to 5.
:/regexp/ Select lines matching regexp.
:/regexp1/,/regexp2/ Select lines between regexp1 and regexp2.
Edit + /foo Forward serach.
:/foo Forward search.
:foo Forward search.
Right click kon word. Forward search.
Edit -/foo Backward search.
:-/foo Backward search.
-/foo Backward search.

Edit text

CTRL-U Delete from cursor to beginning of line.
CTRL-W Delete before cursor.
CTRL-H Delete character before cursor.
Edit , d Clear window.
Edit , s/foo/bar/g Global replace.
Edit , | sed 's/foo/bar/g' Global replace.
Edit s/foo/bar/g Replace in selection.
Edit 2 d Delete 2nd line.
Edit 2 c/foo Change 2nd line.
Edit 2 a/foo Append after 2nd line.
Edit 2 i/foo Prepend before 2nd line.

Work with external commands

cmd Run cmd with the file as argument.
|cmd Pipe selection through cmd and also apply changes.
>cmd Send selection to cmd and see result in a temporary window.
<cmd Paste output of cmd in current window (no selection required).

Any command can be used, these are just a few examples.

Edit , < echo foo Replace window body with some text (works with any command).
echo foo | 9p write acme/$winid/body Append to end of current window body.
Edit , > wc -l Count lines.
Edit , | sort Sort lines.
Edit ,x/regexp/ < date Replace regexp with the output of date(1).
Select text + | sed '' > foo.txt Cut to foo.txt.
Select text + > sed '' > foo.txt Copy to foo.txt.

Files

As mentioned earlier, files are opened using the right mouse click.

foo.c Open file.
foo.c:3 Open file on line 3.
foo.c:3:9 Open file on line 3 column 9.
foo.c:/^func Open file on the line starting with func.
foo.c:/bar/,/baz/ Open file with a selection from bar to baz.

Useful Acme commands

win Spawn shell as a window.
web URL Open URL in browser.
Dump Save current state.
Load Load dump.
Tab 8 Set tab width to 8.

Variables

$% Current file name.
$samfile Current file name.
$winid Current window.


← Previous Index Next →