Blame


1 cfa37a7b 2004-04-10 devnull .TH ACME 1
2 cfa37a7b 2004-04-10 devnull .SH NAME
3 cfa37a7b 2004-04-10 devnull acme, win, awd \- interactive text windows
4 cfa37a7b 2004-04-10 devnull .SH SYNOPSIS
5 cfa37a7b 2004-04-10 devnull .B acme
6 cfa37a7b 2004-04-10 devnull [
7 cfa37a7b 2004-04-10 devnull .B -f
8 cfa37a7b 2004-04-10 devnull .I varfont
9 cfa37a7b 2004-04-10 devnull ]
10 cfa37a7b 2004-04-10 devnull [
11 cfa37a7b 2004-04-10 devnull .B -F
12 cfa37a7b 2004-04-10 devnull .I fixfont
13 cfa37a7b 2004-04-10 devnull ]
14 cfa37a7b 2004-04-10 devnull [
15 cfa37a7b 2004-04-10 devnull .B -c
16 cfa37a7b 2004-04-10 devnull .I ncol
17 cfa37a7b 2004-04-10 devnull ]
18 cfa37a7b 2004-04-10 devnull [
19 cfa37a7b 2004-04-10 devnull .B -b
20 cfa37a7b 2004-04-10 devnull ]
21 cfa37a7b 2004-04-10 devnull [
22 cfa37a7b 2004-04-10 devnull .B -l
23 cfa37a7b 2004-04-10 devnull .I file
24 cfa37a7b 2004-04-10 devnull |
25 cfa37a7b 2004-04-10 devnull .I file
26 cfa37a7b 2004-04-10 devnull \&... ]
27 cfa37a7b 2004-04-10 devnull .LP
28 cfa37a7b 2004-04-10 devnull .B win
29 cfa37a7b 2004-04-10 devnull [
30 cfa37a7b 2004-04-10 devnull .I command
31 cfa37a7b 2004-04-10 devnull ]
32 cfa37a7b 2004-04-10 devnull .LP
33 cfa37a7b 2004-04-10 devnull .B awd
34 cfa37a7b 2004-04-10 devnull [
35 cfa37a7b 2004-04-10 devnull .I label
36 cfa37a7b 2004-04-10 devnull ]
37 cfa37a7b 2004-04-10 devnull .SH DESCRIPTION
38 cfa37a7b 2004-04-10 devnull .I Acme
39 cfa37a7b 2004-04-10 devnull manages windows of text that may be edited interactively or by external programs.
40 cfa37a7b 2004-04-10 devnull The interactive interface uses the keyboard and mouse; external programs
41 cfa37a7b 2004-04-10 devnull use a set of files served by
42 cfa37a7b 2004-04-10 devnull .IR acme ;
43 cfa37a7b 2004-04-10 devnull these are discussed in
44 cfa37a7b 2004-04-10 devnull .IR acme (4).
45 cfa37a7b 2004-04-10 devnull .PP
46 cfa37a7b 2004-04-10 devnull Any named
47 cfa37a7b 2004-04-10 devnull .I files
48 cfa37a7b 2004-04-10 devnull are read into
49 cfa37a7b 2004-04-10 devnull .I acme
50 cfa37a7b 2004-04-10 devnull windows before
51 cfa37a7b 2004-04-10 devnull .I acme
52 cfa37a7b 2004-04-10 devnull accepts input.
53 cfa37a7b 2004-04-10 devnull With the
54 cfa37a7b 2004-04-10 devnull .B -l
55 cfa37a7b 2004-04-10 devnull option, the state of the entire system is loaded
56 cfa37a7b 2004-04-10 devnull from
57 cfa37a7b 2004-04-10 devnull .IR file ,
58 cfa37a7b 2004-04-10 devnull which should have been created by a
59 cfa37a7b 2004-04-10 devnull .B Dump
60 cfa37a7b 2004-04-10 devnull command (q.v.),
61 cfa37a7b 2004-04-10 devnull and subsequent
62 cfa37a7b 2004-04-10 devnull .I file
63 cfa37a7b 2004-04-10 devnull names are ignored.
64 cfa37a7b 2004-04-10 devnull Plain files display as text; directories display as columnated lists of the
65 cfa37a7b 2004-04-10 devnull names of their components, as in
66 cfa37a7b 2004-04-10 devnull .B "ls -p directory|mc
67 cfa37a7b 2004-04-10 devnull except that the names of subdirectories have a slash appended.
68 cfa37a7b 2004-04-10 devnull .PP
69 cfa37a7b 2004-04-10 devnull The
70 cfa37a7b 2004-04-10 devnull .B -f
71 cfa37a7b 2004-04-10 devnull .RB ( -F )
72 cfa37a7b 2004-04-10 devnull option sets the main font, usually variable-pitch (alternate, usually fixed-pitch);
73 cfa37a7b 2004-04-10 devnull the default is
74 cfa37a7b 2004-04-10 devnull .B /lib/font/bit/lucidasans/euro.8.font
75 cfa37a7b 2004-04-10 devnull .RB ( \&.../lucm/unicode.9.font ).
76 cfa37a7b 2004-04-10 devnull Tab intervals are set to the width of 4 (or the value of
77 cfa37a7b 2004-04-10 devnull .BR $tabstop )
78 cfa37a7b 2004-04-10 devnull numeral zeros in the appropriate font.
79 cfa37a7b 2004-04-10 devnull .PP
80 cfa37a7b 2004-04-10 devnull .SS Windows
81 cfa37a7b 2004-04-10 devnull .I Acme
82 cfa37a7b 2004-04-10 devnull windows are in two parts: a one-line
83 cfa37a7b 2004-04-10 devnull .I tag
84 cfa37a7b 2004-04-10 devnull above a multi-line
85 cfa37a7b 2004-04-10 devnull .IR body .
86 cfa37a7b 2004-04-10 devnull The body typically contains an image of a file, as in
87 cfa37a7b 2004-04-10 devnull .IR sam (1),
88 cfa37a7b 2004-04-10 devnull or the output of a
89 cfa37a7b 2004-04-10 devnull program, as in an
90 cfa37a7b 2004-04-10 devnull .IR rio (1)
91 cfa37a7b 2004-04-10 devnull window.
92 cfa37a7b 2004-04-10 devnull The tag contains a number of
93 cfa37a7b 2004-04-10 devnull blank-separated words, followed by a vertical bar character, followed by anything.
94 cfa37a7b 2004-04-10 devnull The first word is the name of the window, typically the name of the associated
95 cfa37a7b 2004-04-10 devnull file or directory, and the other words are commands available in that window.
96 cfa37a7b 2004-04-10 devnull Any text may be added after the bar; examples are strings to search for or
97 cfa37a7b 2004-04-10 devnull commands to execute in that window.
98 cfa37a7b 2004-04-10 devnull Changes to the text left of the bar will be ignored,
99 cfa37a7b 2004-04-10 devnull unless the result is to change the name of the
100 cfa37a7b 2004-04-10 devnull window.
101 cfa37a7b 2004-04-10 devnull .PP
102 cfa37a7b 2004-04-10 devnull If a window holds a directory, the name (first word of the tag) will end with
103 cfa37a7b 2004-04-10 devnull a slash.
104 cfa37a7b 2004-04-10 devnull .SS Scrolling
105 cfa37a7b 2004-04-10 devnull Each window has a scroll bar to the left of the body.
106 cfa37a7b 2004-04-10 devnull The scroll bar behaves much as in
107 cfa37a7b 2004-04-10 devnull .IR sam (1)
108 cfa37a7b 2004-04-10 devnull or
109 cfa37a7b 2004-04-10 devnull .IR rio (1)
110 cfa37a7b 2004-04-10 devnull except that scrolling occurs when the button is pressed, rather than released,
111 cfa37a7b 2004-04-10 devnull and continues
112 cfa37a7b 2004-04-10 devnull as long as the mouse button is held down in the scroll bar.
113 cfa37a7b 2004-04-10 devnull For example, to scroll slowly through a file,
114 cfa37a7b 2004-04-10 devnull hold button 3 down near the top of the scroll bar. Moving the mouse
115 cfa37a7b 2004-04-10 devnull down the scroll bar speeds up the rate of scrolling.
116 cfa37a7b 2004-04-10 devnull .SS Layout
117 cfa37a7b 2004-04-10 devnull .I Acme
118 cfa37a7b 2004-04-10 devnull windows are arranged in columns. By default, it creates two columns when starting;
119 cfa37a7b 2004-04-10 devnull this can be overridden with the
120 cfa37a7b 2004-04-10 devnull .B -c
121 cfa37a7b 2004-04-10 devnull option.
122 cfa37a7b 2004-04-10 devnull Placement is automatic but may be adjusted
123 cfa37a7b 2004-04-10 devnull using the
124 cfa37a7b 2004-04-10 devnull .I layout box
125 cfa37a7b 2004-04-10 devnull in the upper left corner of each window and column.
126 cfa37a7b 2004-04-10 devnull Pressing and holding any mouse button in the box drags
127 cfa37a7b 2004-04-10 devnull the associated window or column.
128 cfa37a7b 2004-04-10 devnull For windows, just
129 cfa37a7b 2004-04-10 devnull clicking in the layout box grows the window in place: button 1
130 cfa37a7b 2004-04-10 devnull grows it a little, button 2 grows it as much as it can, still leaving all other
131 cfa37a7b 2004-04-10 devnull tags in that column visible, and button 3 takes over the column completely,
132 cfa37a7b 2004-04-10 devnull temporarily hiding other windows in the column.
133 cfa37a7b 2004-04-10 devnull (They will return
134 cfa37a7b 2004-04-10 devnull .I en masse
135 cfa37a7b 2004-04-10 devnull if any of them needs attention.)
136 cfa37a7b 2004-04-10 devnull The layout box in a window is normally white; when it is black in the center,
137 cfa37a7b 2004-04-10 devnull it records that the file is `dirty':
138 cfa37a7b 2004-04-10 devnull .I Acme
139 cfa37a7b 2004-04-10 devnull believes it is modified from its original
140 cfa37a7b 2004-04-10 devnull contents.
141 cfa37a7b 2004-04-10 devnull .PP
142 cfa37a7b 2004-04-10 devnull Tags exist at the top of each column and across the whole display.
143 cfa37a7b 2004-04-10 devnull .I Acme
144 cfa37a7b 2004-04-10 devnull pre-loads them with useful commands.
145 cfa37a7b 2004-04-10 devnull Also, the tag across the top maintains a list of executing long-running commands.
146 cfa37a7b 2004-04-10 devnull .SS Typing
147 cfa37a7b 2004-04-10 devnull The behavior of typed text is similar to that in
148 cfa37a7b 2004-04-10 devnull .IR rio (1)
149 cfa37a7b 2004-04-10 devnull except that the characters are delivered to the tag or body under the mouse; there is no
150 cfa37a7b 2004-04-10 devnull `click to type'.
151 cfa37a7b 2004-04-10 devnull (The experimental option
152 cfa37a7b 2004-04-10 devnull .B -b
153 cfa37a7b 2004-04-10 devnull causes typing to go to the most recently clicked-at or made window.)
154 cfa37a7b 2004-04-10 devnull The usual backspacing conventions apply.
155 cfa37a7b 2004-04-10 devnull As in
156 cfa37a7b 2004-04-10 devnull .IR sam (1)
157 cfa37a7b 2004-04-10 devnull but not
158 cfa37a7b 2004-04-10 devnull .IR rio ,
159 cfa37a7b 2004-04-10 devnull the ESC key selects the text typed since the last mouse action,
160 cfa37a7b 2004-04-10 devnull a feature particularly useful when executing commands.
161 cfa37a7b 2004-04-10 devnull A side effect is that typing ESC with text already selected is identical
162 cfa37a7b 2004-04-10 devnull to a
163 cfa37a7b 2004-04-10 devnull .B Cut
164 cfa37a7b 2004-04-10 devnull command
165 cfa37a7b 2004-04-10 devnull .RI ( q.v. ).
166 cfa37a7b 2004-04-10 devnull .PP
167 cfa37a7b 2004-04-10 devnull Most text, including the names of windows, may be edited uniformly.
168 cfa37a7b 2004-04-10 devnull The only exception is that the command names to the
169 cfa37a7b 2004-04-10 devnull left of the bar in a tag are maintained automatically; changes to them are repaired
170 cfa37a7b 2004-04-10 devnull by
171 cfa37a7b 2004-04-10 devnull .IR acme .
172 cfa37a7b 2004-04-10 devnull .SS "Directory context
173 cfa37a7b 2004-04-10 devnull Each window's tag names a directory: explicitly if the window
174 cfa37a7b 2004-04-10 devnull holds a directory; implicitly if it holds a regular file
175 cfa37a7b 2004-04-10 devnull (e.g. the directory
176 cfa37a7b 2004-04-10 devnull .B /adm
177 cfa37a7b 2004-04-10 devnull if the window holds
178 cfa37a7b 2004-04-10 devnull .BR /adm/users ).
179 cfa37a7b 2004-04-10 devnull This directory provides a
180 cfa37a7b 2004-04-10 devnull .I context
181 cfa37a7b 2004-04-10 devnull for interpreting file names in that window.
182 cfa37a7b 2004-04-10 devnull For example, the string
183 cfa37a7b 2004-04-10 devnull .B users
184 cfa37a7b 2004-04-10 devnull in a window labeled
185 cfa37a7b 2004-04-10 devnull .B /adm/
186 cfa37a7b 2004-04-10 devnull or
187 cfa37a7b 2004-04-10 devnull .B /adm/keys
188 cfa37a7b 2004-04-10 devnull will be interpreted as the file name
189 cfa37a7b 2004-04-10 devnull .BR /adm/users .
190 cfa37a7b 2004-04-10 devnull The directory is defined purely textually, so it can be a non-existent
191 cfa37a7b 2004-04-10 devnull directory or a real directory associated with a non-existent file
192 cfa37a7b 2004-04-10 devnull (e.g.
193 cfa37a7b 2004-04-10 devnull .BR /adm/not-a-file ).
194 cfa37a7b 2004-04-10 devnull File names beginning with a slash
195 cfa37a7b 2004-04-10 devnull are assumed to be absolute file names.
196 cfa37a7b 2004-04-10 devnull .SS Errors
197 cfa37a7b 2004-04-10 devnull Windows whose names begin with
198 cfa37a7b 2004-04-10 devnull .B -
199 cfa37a7b 2004-04-10 devnull or
200 cfa37a7b 2004-04-10 devnull .B +
201 cfa37a7b 2004-04-10 devnull conventionally hold diagnostics and other data
202 cfa37a7b 2004-04-10 devnull not directly associated with files.
203 cfa37a7b 2004-04-10 devnull A window labeled
204 cfa37a7b 2004-04-10 devnull .B +Errors
205 cfa37a7b 2004-04-10 devnull receives all diagnostics produced by
206 cfa37a7b 2004-04-10 devnull .I acme
207 cfa37a7b 2004-04-10 devnull itself.
208 cfa37a7b 2004-04-10 devnull Diagnostics from commands run by
209 cfa37a7b 2004-04-10 devnull .I acme
210 cfa37a7b 2004-04-10 devnull appear in a window named
211 cfa37a7b 2004-04-10 devnull .IB directory /+Errors
212 cfa37a7b 2004-04-10 devnull where
213 cfa37a7b 2004-04-10 devnull .I directory
214 cfa37a7b 2004-04-10 devnull is identified by the context of the command.
215 cfa37a7b 2004-04-10 devnull These error windows are created when needed.
216 cfa37a7b 2004-04-10 devnull .SS "Mouse button 1
217 cfa37a7b 2004-04-10 devnull Mouse button 1 selects text just as in
218 cfa37a7b 2004-04-10 devnull .IR sam (1)
219 cfa37a7b 2004-04-10 devnull or
220 cfa37a7b 2004-04-10 devnull .IR rio (1) ,
221 cfa37a7b 2004-04-10 devnull including the usual double-clicking conventions.
222 cfa37a7b 2004-04-10 devnull .SS "Mouse button 2
223 cfa37a7b 2004-04-10 devnull By an
224 cfa37a7b 2004-04-10 devnull action similar to selecting text with button 1,
225 cfa37a7b 2004-04-10 devnull button 2 indicates text to execute as a command.
226 cfa37a7b 2004-04-10 devnull If the indicated text has multiple white-space-separated words,
227 cfa37a7b 2004-04-10 devnull the first is the command name and the second and subsequent
228 cfa37a7b 2004-04-10 devnull are its arguments.
229 cfa37a7b 2004-04-10 devnull If button 2 is `clicked'\(emindicates a null string\(em\c
230 cfa37a7b 2004-04-10 devnull .I acme
231 cfa37a7b 2004-04-10 devnull .I expands
232 cfa37a7b 2004-04-10 devnull the indicated text to find a command to run:
233 cfa37a7b 2004-04-10 devnull if the click is within button-1-selected text,
234 cfa37a7b 2004-04-10 devnull .I acme
235 cfa37a7b 2004-04-10 devnull takes that selection as the command;
236 cfa37a7b 2004-04-10 devnull otherwise it takes the largest string of valid file name characters containing the click.
237 cfa37a7b 2004-04-10 devnull Valid file name characters are alphanumerics and
238 cfa37a7b 2004-04-10 devnull .B _
239 cfa37a7b 2004-04-10 devnull .B .
240 cfa37a7b 2004-04-10 devnull .B -
241 cfa37a7b 2004-04-10 devnull .B +
242 cfa37a7b 2004-04-10 devnull .BR / .
243 cfa37a7b 2004-04-10 devnull This behavior is similar to double-clicking with button 1 but,
244 cfa37a7b 2004-04-10 devnull because a null command is meaningless, only a single click is required.
245 cfa37a7b 2004-04-10 devnull .PP
246 cfa37a7b 2004-04-10 devnull Some commands, all by convention starting with a capital letter, are
247 cfa37a7b 2004-04-10 devnull .I built-ins
248 cfa37a7b 2004-04-10 devnull that are executed directly by
249 cfa37a7b 2004-04-10 devnull .IR acme :
250 cfa37a7b 2004-04-10 devnull .TP
251 cfa37a7b 2004-04-10 devnull .B Cut
252 cfa37a7b 2004-04-10 devnull Delete most recently selected text and place in snarf buffer.
253 cfa37a7b 2004-04-10 devnull .TP
254 cfa37a7b 2004-04-10 devnull .B Del
255 cfa37a7b 2004-04-10 devnull Delete window. If window is dirty, instead print a warning; a second
256 cfa37a7b 2004-04-10 devnull .B Del
257 cfa37a7b 2004-04-10 devnull will succeed.
258 cfa37a7b 2004-04-10 devnull .TP
259 cfa37a7b 2004-04-10 devnull .B Delcol
260 cfa37a7b 2004-04-10 devnull Delete column and all its windows, after checking that windows are not dirty.
261 cfa37a7b 2004-04-10 devnull .TP
262 cfa37a7b 2004-04-10 devnull .B Delete
263 cfa37a7b 2004-04-10 devnull Delete window without checking for dirtiness.
264 cfa37a7b 2004-04-10 devnull .TP
265 cfa37a7b 2004-04-10 devnull .B Dump
266 cfa37a7b 2004-04-10 devnull Write the state of
267 cfa37a7b 2004-04-10 devnull .I acme
268 cfa37a7b 2004-04-10 devnull to the file name, if specified, or
269 cfa37a7b 2004-04-10 devnull .B $home/acme.dump
270 cfa37a7b 2004-04-10 devnull by default.
271 cfa37a7b 2004-04-10 devnull .TP
272 cfa37a7b 2004-04-10 devnull .B Edit
273 cfa37a7b 2004-04-10 devnull Treat the argument as a text editing command in the style of
274 cfa37a7b 2004-04-10 devnull .IR sam (1).
275 cfa37a7b 2004-04-10 devnull The full
276 cfa37a7b 2004-04-10 devnull .B Sam
277 cfa37a7b 2004-04-10 devnull language is implemented except for the commands
278 cfa37a7b 2004-04-10 devnull .BR k ,
279 cfa37a7b 2004-04-10 devnull .BR n ,
280 cfa37a7b 2004-04-10 devnull .BR q ,
281 cfa37a7b 2004-04-10 devnull and
282 cfa37a7b 2004-04-10 devnull .BR ! .
283 cfa37a7b 2004-04-10 devnull The
284 cfa37a7b 2004-04-10 devnull .B =
285 cfa37a7b 2004-04-10 devnull command is slightly different: it includes the file name and
286 cfa37a7b 2004-04-10 devnull gives only the line address unless the command is explicitly
287 cfa37a7b 2004-04-10 devnull .BR =# .
288 cfa37a7b 2004-04-10 devnull The `current window' for the command is the body of the window in which the
289 cfa37a7b 2004-04-10 devnull .B Edit
290 cfa37a7b 2004-04-10 devnull command is executed.
291 cfa37a7b 2004-04-10 devnull Usually the
292 cfa37a7b 2004-04-10 devnull .B Edit
293 cfa37a7b 2004-04-10 devnull command would be typed in a tag; longer commands may be prepared in a
294 cfa37a7b 2004-04-10 devnull scratch window and executed, with
295 cfa37a7b 2004-04-10 devnull .B Edit
296 cfa37a7b 2004-04-10 devnull itself in the current window, using the 2-1 chord described below.
297 cfa37a7b 2004-04-10 devnull .TP
298 cfa37a7b 2004-04-10 devnull .B Exit
299 cfa37a7b 2004-04-10 devnull Exit
300 cfa37a7b 2004-04-10 devnull .I acme
301 cfa37a7b 2004-04-10 devnull after checking that windows are not dirty.
302 cfa37a7b 2004-04-10 devnull .TP
303 cfa37a7b 2004-04-10 devnull .B Font
304 cfa37a7b 2004-04-10 devnull With no arguments, change the font of the associated window from fixed-spaced to
305 cfa37a7b 2004-04-10 devnull proportional-spaced or
306 cfa37a7b 2004-04-10 devnull .I vice
307 cfa37a7b 2004-04-10 devnull .IR versa .
308 cfa37a7b 2004-04-10 devnull Given a file name argument, change the font of the window to that stored in the named file.
309 cfa37a7b 2004-04-10 devnull If the file name argument is prefixed by
310 cfa37a7b 2004-04-10 devnull .B var
311 cfa37a7b 2004-04-10 devnull .RB ( fix ),
312 cfa37a7b 2004-04-10 devnull also set the default proportional-spaced (fixed-spaced) font for future use to that font.
313 cfa37a7b 2004-04-10 devnull Other existing windows are unaffected.
314 cfa37a7b 2004-04-10 devnull .TP
315 cfa37a7b 2004-04-10 devnull .B Get
316 cfa37a7b 2004-04-10 devnull Load file into window, replacing previous contents (after checking for dirtiness as in
317 cfa37a7b 2004-04-10 devnull .BR Del ).
318 cfa37a7b 2004-04-10 devnull With no argument, use the existing file name of the window.
319 cfa37a7b 2004-04-10 devnull Given an argument, use that file but do not change the window's file name.
320 cfa37a7b 2004-04-10 devnull .TP
321 cfa37a7b 2004-04-10 devnull .B ID
322 cfa37a7b 2004-04-10 devnull Print window ID number
323 cfa37a7b 2004-04-10 devnull .RI ( q.v. ).
324 cfa37a7b 2004-04-10 devnull .TP
325 cfa37a7b 2004-04-10 devnull .B Incl
326 cfa37a7b 2004-04-10 devnull When opening `include' files
327 cfa37a7b 2004-04-10 devnull (those enclosed in
328 cfa37a7b 2004-04-10 devnull .BR <> )
329 cfa37a7b 2004-04-10 devnull with button 3,
330 cfa37a7b 2004-04-10 devnull .I acme
331 cfa37a7b 2004-04-10 devnull searches in directories
332 cfa37a7b 2004-04-10 devnull .B /$objtype/include
333 cfa37a7b 2004-04-10 devnull and
334 cfa37a7b 2004-04-10 devnull .BR /sys/include .
335 cfa37a7b 2004-04-10 devnull .B Incl
336 cfa37a7b 2004-04-10 devnull adds its arguments to a supplementary list of include directories, analogous to
337 cfa37a7b 2004-04-10 devnull the
338 cfa37a7b 2004-04-10 devnull .B -I
339 cfa37a7b 2004-04-10 devnull option to the compilers.
340 cfa37a7b 2004-04-10 devnull This list is per-window and is inherited when windows are created by actions in that window, so
341 cfa37a7b 2004-04-10 devnull .I Incl
342 cfa37a7b 2004-04-10 devnull is most usefully applied to a directory containing relevant source.
343 cfa37a7b 2004-04-10 devnull With no arguments,
344 cfa37a7b 2004-04-10 devnull .I Incl
345 cfa37a7b 2004-04-10 devnull prints the supplementary list.
346 cfa37a7b 2004-04-10 devnull This command is largely superseded by plumbing
347 cfa37a7b 2004-04-10 devnull (see
348 cfa37a7b 2004-04-10 devnull .IR plumb (6)).
349 cfa37a7b 2004-04-10 devnull .TP
350 cfa37a7b 2004-04-10 devnull .B Kill
351 cfa37a7b 2004-04-10 devnull Send a
352 cfa37a7b 2004-04-10 devnull .B kill
353 cfa37a7b 2004-04-10 devnull note to
354 cfa37a7b 2004-04-10 devnull .IR acme -initiated
355 cfa37a7b 2004-04-10 devnull commands named as arguments.
356 cfa37a7b 2004-04-10 devnull .TP
357 cfa37a7b 2004-04-10 devnull .B Local
358 cfa37a7b 2004-04-10 devnull When prefixed to a command
359 cfa37a7b 2004-04-10 devnull run the
360 cfa37a7b 2004-04-10 devnull command in the same file name space and environment variable group as
361 cfa37a7b 2004-04-10 devnull .IR acme .
362 cfa37a7b 2004-04-10 devnull The environment of the command
363 cfa37a7b 2004-04-10 devnull is restricted but is sufficient to run
364 cfa37a7b 2004-04-10 devnull .IR bind (1),
365 cfa37a7b 2004-04-10 devnull .IR 9fs
366 cfa37a7b 2004-04-10 devnull (see
367 cfa37a7b 2004-04-10 devnull .IR srv (4)),
368 cfa37a7b 2004-04-10 devnull .IR import (4),
369 cfa37a7b 2004-04-10 devnull etc.,
370 cfa37a7b 2004-04-10 devnull and to set environment variables such as
371 cfa37a7b 2004-04-10 devnull .BR $objtype .
372 cfa37a7b 2004-04-10 devnull .TP
373 cfa37a7b 2004-04-10 devnull .B Load
374 cfa37a7b 2004-04-10 devnull Restore the state of
375 cfa37a7b 2004-04-10 devnull .I acme
376 cfa37a7b 2004-04-10 devnull from a file (default
377 cfa37a7b 2004-04-10 devnull .BR $home/acme.dump )
378 cfa37a7b 2004-04-10 devnull created by the
379 cfa37a7b 2004-04-10 devnull .B Dump
380 cfa37a7b 2004-04-10 devnull command.
381 cfa37a7b 2004-04-10 devnull .TP
382 cfa37a7b 2004-04-10 devnull .B Look
383 cfa37a7b 2004-04-10 devnull Search in body for occurrence of literal text indicated by the argument or,
384 cfa37a7b 2004-04-10 devnull if none is given, by the selected text in the body.
385 cfa37a7b 2004-04-10 devnull .TP
386 cfa37a7b 2004-04-10 devnull .B New
387 cfa37a7b 2004-04-10 devnull Make new window. With arguments, load the named files into windows.
388 cfa37a7b 2004-04-10 devnull .TP
389 cfa37a7b 2004-04-10 devnull .B Newcol
390 cfa37a7b 2004-04-10 devnull Make new column.
391 cfa37a7b 2004-04-10 devnull .TP
392 cfa37a7b 2004-04-10 devnull .B Paste
393 cfa37a7b 2004-04-10 devnull Replace most recently selected text with contents of snarf buffer.
394 cfa37a7b 2004-04-10 devnull .TP
395 cfa37a7b 2004-04-10 devnull .B Put
396 cfa37a7b 2004-04-10 devnull Write window to the named file.
397 cfa37a7b 2004-04-10 devnull With no argument, write to the file named in the tag of the window.
398 cfa37a7b 2004-04-10 devnull .TP
399 cfa37a7b 2004-04-10 devnull .B Putall
400 cfa37a7b 2004-04-10 devnull Write all dirty windows whose names indicate existing regular files.
401 cfa37a7b 2004-04-10 devnull .TP
402 cfa37a7b 2004-04-10 devnull .B Redo
403 cfa37a7b 2004-04-10 devnull Complement of
404 cfa37a7b 2004-04-10 devnull .BR Undo .
405 cfa37a7b 2004-04-10 devnull .TP
406 cfa37a7b 2004-04-10 devnull .B Send
407 cfa37a7b 2004-04-10 devnull Append selected text or snarf buffer to end of body; used mainly with
408 cfa37a7b 2004-04-10 devnull .IR win .
409 cfa37a7b 2004-04-10 devnull .TP
410 cfa37a7b 2004-04-10 devnull .B Snarf
411 cfa37a7b 2004-04-10 devnull Place selected text in snarf buffer.
412 cfa37a7b 2004-04-10 devnull .TP
413 cfa37a7b 2004-04-10 devnull .B Sort
414 cfa37a7b 2004-04-10 devnull Arrange the windows in the column from top to bottom in lexicographical
415 cfa37a7b 2004-04-10 devnull order based on their names.
416 cfa37a7b 2004-04-10 devnull .TP
417 cfa37a7b 2004-04-10 devnull .B Tab
418 cfa37a7b 2004-04-10 devnull Set the width of tab stops for this window to the value of the argument, in units of widths of the zero
419 cfa37a7b 2004-04-10 devnull character.
420 cfa37a7b 2004-04-10 devnull With no arguments, it prints the current value.
421 cfa37a7b 2004-04-10 devnull .TP
422 cfa37a7b 2004-04-10 devnull .B Undo
423 cfa37a7b 2004-04-10 devnull Undo last textual change or set of changes.
424 cfa37a7b 2004-04-10 devnull .TP
425 cfa37a7b 2004-04-10 devnull .B Zerox
426 cfa37a7b 2004-04-10 devnull Create a copy of the window containing most recently selected text.
427 cfa37a7b 2004-04-10 devnull .PP
428 cfa37a7b 2004-04-10 devnull A common place to store text for commands is in the tag; in fact
429 cfa37a7b 2004-04-10 devnull .I acme
430 cfa37a7b 2004-04-10 devnull maintains a set of commands appropriate to the state of the window
431 cfa37a7b 2004-04-10 devnull to the left of the bar in the tag.
432 cfa37a7b 2004-04-10 devnull .PP
433 cfa37a7b 2004-04-10 devnull If the text indicated with button 2 is not a recognized built-in, it is executed as
434 cfa37a7b 2004-04-10 devnull a shell command. For example, indicating
435 cfa37a7b 2004-04-10 devnull .B date
436 cfa37a7b 2004-04-10 devnull with button 2 runs
437 cfa37a7b 2004-04-10 devnull .IR date (1).
438 cfa37a7b 2004-04-10 devnull The standard
439 cfa37a7b 2004-04-10 devnull and error outputs of commands are sent to the error window associated with
440 cfa37a7b 2004-04-10 devnull the directory from which the command was run, which will be created if
441 cfa37a7b 2004-04-10 devnull necessary.
442 cfa37a7b 2004-04-10 devnull For example, in a window
443 cfa37a7b 2004-04-10 devnull .B /adm/users
444 cfa37a7b 2004-04-10 devnull executing
445 cfa37a7b 2004-04-10 devnull .B pwd
446 cfa37a7b 2004-04-10 devnull will produce the output
447 cfa37a7b 2004-04-10 devnull .B /adm
448 cfa37a7b 2004-04-10 devnull in a (possibly newly-created) window labeled
449 cfa37a7b 2004-04-10 devnull .BR /adm/+Errors ;
450 cfa37a7b 2004-04-10 devnull in a window containing
451 b5fdffee 2004-04-19 devnull .B /usr/local/plan9/src/cmd/sam/sam.c
452 cfa37a7b 2004-04-10 devnull executing
453 cfa37a7b 2004-04-10 devnull .B mk
454 cfa37a7b 2004-04-10 devnull will run
455 cfa37a7b 2004-04-10 devnull .IR mk (1)
456 cfa37a7b 2004-04-10 devnull in
457 b5fdffee 2004-04-19 devnull .BR /usr/local/plan9/src/cmd/sam ,
458 cfa37a7b 2004-04-10 devnull producing output in a window labeled
459 b5fdffee 2004-04-19 devnull .BR /usr/local/plan9/src/cmd/sam/+Errors .
460 cfa37a7b 2004-04-10 devnull The environment of such commands contains the variable
461 cfa37a7b 2004-04-10 devnull .B $%
462 cfa37a7b 2004-04-10 devnull with value set to the filename of the window in which the command is run.
463 cfa37a7b 2004-04-10 devnull .SS "Mouse button 3
464 cfa37a7b 2004-04-10 devnull Pointing at text with button 3 instructs
465 cfa37a7b 2004-04-10 devnull .I acme
466 cfa37a7b 2004-04-10 devnull to locate or acquire the file, string, etc. described by the indicated text and
467 cfa37a7b 2004-04-10 devnull its context.
468 cfa37a7b 2004-04-10 devnull This description follows the actions taken when
469 cfa37a7b 2004-04-10 devnull button 3 is released after sweeping out some text.
470 cfa37a7b 2004-04-10 devnull In the description,
471 cfa37a7b 2004-04-10 devnull .I text
472 cfa37a7b 2004-04-10 devnull refers to the text of the original sweep or, if it was null, the result of
473 cfa37a7b 2004-04-10 devnull applying the same expansion rules that apply to button 2 actions.
474 cfa37a7b 2004-04-10 devnull .PP
475 cfa37a7b 2004-04-10 devnull If the text names an existing window,
476 cfa37a7b 2004-04-10 devnull .I acme
477 cfa37a7b 2004-04-10 devnull moves the mouse cursor to the selected text in the body of that window.
478 cfa37a7b 2004-04-10 devnull If the text names an existing file with no associated window,
479 cfa37a7b 2004-04-10 devnull .I acme
480 cfa37a7b 2004-04-10 devnull loads the file into a new window and moves the mouse there.
481 cfa37a7b 2004-04-10 devnull If the text is a file name contained in angle brackets,
482 cfa37a7b 2004-04-10 devnull .I acme
483 cfa37a7b 2004-04-10 devnull loads the indicated include file from the directory appropriate to the
484 cfa37a7b 2004-04-10 devnull suffix of the file name of the window holding the text.
485 cfa37a7b 2004-04-10 devnull (The
486 cfa37a7b 2004-04-10 devnull .B Incl
487 cfa37a7b 2004-04-10 devnull command adds directories to the standard list.)
488 cfa37a7b 2004-04-10 devnull .PP
489 cfa37a7b 2004-04-10 devnull If the text begins with a colon, it is taken to be an address, in
490 cfa37a7b 2004-04-10 devnull the style of
491 cfa37a7b 2004-04-10 devnull .IR sam (1),
492 cfa37a7b 2004-04-10 devnull within the body of the window containing the text.
493 cfa37a7b 2004-04-10 devnull The address is evaluated, the resulting text highlighted, and the mouse moved to it.
494 cfa37a7b 2004-04-10 devnull Thus, in
495 cfa37a7b 2004-04-10 devnull .IR acme ,
496 cfa37a7b 2004-04-10 devnull one must type
497 cfa37a7b 2004-04-10 devnull .B :/regexp
498 cfa37a7b 2004-04-10 devnull or
499 cfa37a7b 2004-04-10 devnull .B :127
500 cfa37a7b 2004-04-10 devnull not just
501 cfa37a7b 2004-04-10 devnull .B /regexp
502 cfa37a7b 2004-04-10 devnull or
503 cfa37a7b 2004-04-10 devnull .BR 127 .
504 cfa37a7b 2004-04-10 devnull (There is an easier way to locate literal text; see below.)
505 cfa37a7b 2004-04-10 devnull .PP
506 cfa37a7b 2004-04-10 devnull If the text is a file name followed by a colon and an address,
507 cfa37a7b 2004-04-10 devnull .I acme
508 cfa37a7b 2004-04-10 devnull loads the file and evaluates the address. For example, clicking button 3 anywhere
509 cfa37a7b 2004-04-10 devnull in the text
510 cfa37a7b 2004-04-10 devnull .B file.c:27
511 cfa37a7b 2004-04-10 devnull will open
512 cfa37a7b 2004-04-10 devnull .BR file.c ,
513 cfa37a7b 2004-04-10 devnull select line
514 cfa37a7b 2004-04-10 devnull 27, and put the mouse at the beginning of the line. The rules about Error
515 cfa37a7b 2004-04-10 devnull files, directories, and so on all combine to make this an efficient way to
516 cfa37a7b 2004-04-10 devnull investigate errors from compilers, etc.
517 cfa37a7b 2004-04-10 devnull .PP
518 cfa37a7b 2004-04-10 devnull If the text is not an address or file, it is taken to
519 cfa37a7b 2004-04-10 devnull be literal text, which is then searched for in the body of the window
520 cfa37a7b 2004-04-10 devnull in which button 3 was clicked. If a match is found, it is selected and the mouse is
521 cfa37a7b 2004-04-10 devnull moved there. Thus, to search for occurrences of a word in a file,
522 cfa37a7b 2004-04-10 devnull just click button 3 on the word. Because of the rule of using the
523 cfa37a7b 2004-04-10 devnull selection as the button 3 action, subsequent clicks will find subsequent
524 cfa37a7b 2004-04-10 devnull occurrences without moving the mouse.
525 cfa37a7b 2004-04-10 devnull .PP
526 cfa37a7b 2004-04-10 devnull In all these actions, the mouse motion is not done if the text is a null string
527 cfa37a7b 2004-04-10 devnull within a non-null selected string in the tag, so that (for example) complex regular expressions
528 cfa37a7b 2004-04-10 devnull may be selected and applied repeatedly to the
529 cfa37a7b 2004-04-10 devnull body by just clicking button 3 over them.
530 cfa37a7b 2004-04-10 devnull .SS "Chords of mouse buttons
531 cfa37a7b 2004-04-10 devnull Several operations are bound to multiple-button actions.
532 cfa37a7b 2004-04-10 devnull After selecting text, with button 1 still down, pressing button 2
533 cfa37a7b 2004-04-10 devnull executes
534 cfa37a7b 2004-04-10 devnull .B Cut
535 cfa37a7b 2004-04-10 devnull and button 3 executes
536 cfa37a7b 2004-04-10 devnull .BR Paste .
537 cfa37a7b 2004-04-10 devnull After clicking one button, the other undoes
538 cfa37a7b 2004-04-10 devnull the first; thus (while holding down button 1) 2 followed by 3 is a
539 cfa37a7b 2004-04-10 devnull .B Snarf
540 cfa37a7b 2004-04-10 devnull that leaves the file undirtied;
541 cfa37a7b 2004-04-10 devnull 3 followed by 2 is a no-op.
542 cfa37a7b 2004-04-10 devnull These actions also apply to text selected by double-clicking because
543 cfa37a7b 2004-04-10 devnull the double-click expansion is made when the second
544 cfa37a7b 2004-04-10 devnull click starts, not when it ends.
545 cfa37a7b 2004-04-10 devnull .PP
546 cfa37a7b 2004-04-10 devnull Commands may be given extra arguments by a mouse chord with buttons 2 and 1.
547 cfa37a7b 2004-04-10 devnull While holding down button 2 on text to be executed as a command, clicking button 1
548 cfa37a7b 2004-04-10 devnull appends the text last pointed to by button 1 as a distinct final argument.
549 cfa37a7b 2004-04-10 devnull For example, to search for literal
550 cfa37a7b 2004-04-10 devnull .B text
551 cfa37a7b 2004-04-10 devnull one may execute
552 cfa37a7b 2004-04-10 devnull .B Look text
553 cfa37a7b 2004-04-10 devnull with button 2 or instead point at
554 cfa37a7b 2004-04-10 devnull .B text
555 cfa37a7b 2004-04-10 devnull with button 1 in any window, release button 1,
556 cfa37a7b 2004-04-10 devnull then execute
557 cfa37a7b 2004-04-10 devnull .BR Look ,
558 cfa37a7b 2004-04-10 devnull clicking button 1 while 2 is held down.
559 cfa37a7b 2004-04-10 devnull .PP
560 cfa37a7b 2004-04-10 devnull When an external command (e.g.
561 cfa37a7b 2004-04-10 devnull .IR echo (1))
562 cfa37a7b 2004-04-10 devnull is executed this way, the extra argument is passed as expected and an
563 cfa37a7b 2004-04-10 devnull environment variable
564 cfa37a7b 2004-04-10 devnull .B $acmeaddr
565 cfa37a7b 2004-04-10 devnull is created that holds, in the form interpreted by button 3,
566 cfa37a7b 2004-04-10 devnull the fully-qualified address of the extra argument.
567 cfa37a7b 2004-04-10 devnull .SS "Support programs
568 cfa37a7b 2004-04-10 devnull .I Win
569 cfa37a7b 2004-04-10 devnull creates a new
570 cfa37a7b 2004-04-10 devnull .I acme
571 cfa37a7b 2004-04-10 devnull window and runs a
572 cfa37a7b 2004-04-10 devnull .I command
573 cfa37a7b 2004-04-10 devnull (default
574 cfa37a7b 2004-04-10 devnull .BR /bin/rc )
575 cfa37a7b 2004-04-10 devnull in it, turning the window into something analogous to an
576 cfa37a7b 2004-04-10 devnull .IR rio (1)
577 cfa37a7b 2004-04-10 devnull window.
578 cfa37a7b 2004-04-10 devnull Executing text in a
579 cfa37a7b 2004-04-10 devnull .I win
580 cfa37a7b 2004-04-10 devnull window with button
581 cfa37a7b 2004-04-10 devnull 2 is similar to using
582 cfa37a7b 2004-04-10 devnull .BR Send .
583 cfa37a7b 2004-04-10 devnull .PP
584 cfa37a7b 2004-04-10 devnull .I Awd
585 cfa37a7b 2004-04-10 devnull loads the tag line of its window with the directory in which it's running, suffixed
586 cfa37a7b 2004-04-10 devnull .BI - label
587 cfa37a7b 2004-04-10 devnull (default
588 cfa37a7b 2004-04-10 devnull .BR rc );
589 cfa37a7b 2004-04-10 devnull it is
590 cfa37a7b 2004-04-10 devnull intended to be executed by a
591 cfa37a7b 2004-04-10 devnull .B cd
592 cfa37a7b 2004-04-10 devnull function for use in
593 cfa37a7b 2004-04-10 devnull .I win
594 cfa37a7b 2004-04-10 devnull windows. An example definition is
595 cfa37a7b 2004-04-10 devnull .EX
596 cfa37a7b 2004-04-10 devnull fn cd { builtin cd $1 && awd $sysname }
597 cfa37a7b 2004-04-10 devnull .EE
598 cfa37a7b 2004-04-10 devnull .SS "Applications and guide files
599 cfa37a7b 2004-04-10 devnull In the directory
600 cfa37a7b 2004-04-10 devnull .B /acme
601 cfa37a7b 2004-04-10 devnull live several subdirectories, each corresponding to a program or
602 cfa37a7b 2004-04-10 devnull set of related programs that employ
603 cfa37a7b 2004-04-10 devnull .I acme's
604 cfa37a7b 2004-04-10 devnull user interface.
605 cfa37a7b 2004-04-10 devnull Each subdirectory includes source, binaries, and a
606 cfa37a7b 2004-04-10 devnull .B readme
607 cfa37a7b 2004-04-10 devnull file for further information.
608 cfa37a7b 2004-04-10 devnull It also includes a
609 cfa37a7b 2004-04-10 devnull .BR guide ,
610 cfa37a7b 2004-04-10 devnull a text file holding sample commands to invoke the programs.
611 cfa37a7b 2004-04-10 devnull The idea is to find an example in the guide that best matches
612 cfa37a7b 2004-04-10 devnull the job at hand, edit it to suit, and execute it.
613 cfa37a7b 2004-04-10 devnull .PP
614 cfa37a7b 2004-04-10 devnull Whenever a command is executed by
615 cfa37a7b 2004-04-10 devnull .IR acme ,
616 cfa37a7b 2004-04-10 devnull the default search path includes the directory of the window containing
617 cfa37a7b 2004-04-10 devnull the command and its subdirectory
618 cfa37a7b 2004-04-10 devnull .BR $cputype .
619 cfa37a7b 2004-04-10 devnull The program directories in
620 cfa37a7b 2004-04-10 devnull .B /acme
621 cfa37a7b 2004-04-10 devnull contain appropriately labeled subdirectories of binaries,
622 cfa37a7b 2004-04-10 devnull so commands named
623 cfa37a7b 2004-04-10 devnull in the guide files will be found automatically when run.
624 cfa37a7b 2004-04-10 devnull Also,
625 cfa37a7b 2004-04-10 devnull .I acme
626 cfa37a7b 2004-04-10 devnull binds the directories
627 cfa37a7b 2004-04-10 devnull .B /acme/bin
628 cfa37a7b 2004-04-10 devnull and
629 cfa37a7b 2004-04-10 devnull .B /acme/bin/$cputype
630 cfa37a7b 2004-04-10 devnull to the end of
631 cfa37a7b 2004-04-10 devnull .B /bin
632 cfa37a7b 2004-04-10 devnull when it starts; this is where
633 cfa37a7b 2004-04-10 devnull .IR acme -specific
634 cfa37a7b 2004-04-10 devnull programs such as
635 cfa37a7b 2004-04-10 devnull .I win
636 cfa37a7b 2004-04-10 devnull and
637 cfa37a7b 2004-04-10 devnull .I awd
638 cfa37a7b 2004-04-10 devnull reside.
639 cfa37a7b 2004-04-10 devnull .SH FILES
640 cfa37a7b 2004-04-10 devnull .TF $home/acme.dump
641 cfa37a7b 2004-04-10 devnull .TP
642 cfa37a7b 2004-04-10 devnull .B $home/acme.dump
643 cfa37a7b 2004-04-10 devnull default file for
644 cfa37a7b 2004-04-10 devnull .B Dump
645 cfa37a7b 2004-04-10 devnull and
646 cfa37a7b 2004-04-10 devnull .BR Load ;
647 cfa37a7b 2004-04-10 devnull also where state is written if
648 cfa37a7b 2004-04-10 devnull .I acme
649 cfa37a7b 2004-04-10 devnull dies or is killed unexpectedly, e.g. by deleting its window.
650 cfa37a7b 2004-04-10 devnull .TP
651 cfa37a7b 2004-04-10 devnull .B /acme/*/guide
652 cfa37a7b 2004-04-10 devnull template files for applications
653 cfa37a7b 2004-04-10 devnull .TP
654 cfa37a7b 2004-04-10 devnull .B /acme/*/readme
655 cfa37a7b 2004-04-10 devnull informal documentation for applications
656 cfa37a7b 2004-04-10 devnull .TP
657 cfa37a7b 2004-04-10 devnull .B /acme/*/src
658 cfa37a7b 2004-04-10 devnull source for applications
659 cfa37a7b 2004-04-10 devnull .TP
660 cfa37a7b 2004-04-10 devnull .B /acme/*/mips
661 cfa37a7b 2004-04-10 devnull MIPS-specific binaries for applications
662 cfa37a7b 2004-04-10 devnull .SH SOURCE
663 b5fdffee 2004-04-19 devnull .B /usr/local/plan9/src/cmd/acme
664 cfa37a7b 2004-04-10 devnull .br
665 cfa37a7b 2004-04-10 devnull .B /acme/bin/source/win
666 cfa37a7b 2004-04-10 devnull .br
667 b5fdffee 2004-04-19 devnull .B /usr/local/plan9/src/cmd/awd.c
668 cfa37a7b 2004-04-10 devnull .SH SEE ALSO
669 cfa37a7b 2004-04-10 devnull .IR acme (4)
670 cfa37a7b 2004-04-10 devnull .br
671 cfa37a7b 2004-04-10 devnull Rob Pike,
672 cfa37a7b 2004-04-10 devnull .I
673 cfa37a7b 2004-04-10 devnull Acme: A User Interface for Programmers.
674 cfa37a7b 2004-04-10 devnull .SH BUGS
675 cfa37a7b 2004-04-10 devnull With the
676 cfa37a7b 2004-04-10 devnull .B -l
677 cfa37a7b 2004-04-10 devnull option or
678 cfa37a7b 2004-04-10 devnull .B Load
679 cfa37a7b 2004-04-10 devnull command,
680 cfa37a7b 2004-04-10 devnull the recreation of windows under control of external programs
681 cfa37a7b 2004-04-10 devnull such as
682 cfa37a7b 2004-04-10 devnull .I win
683 cfa37a7b 2004-04-10 devnull is just to rerun the command; information may be lost.