Blame


1 cfa37a7b 2004-04-10 devnull .TH ED 1
2 cfa37a7b 2004-04-10 devnull .SH NAME
3 cfa37a7b 2004-04-10 devnull ed \- text editor
4 cfa37a7b 2004-04-10 devnull .SH SYNOPSIS
5 cfa37a7b 2004-04-10 devnull .B ed
6 cfa37a7b 2004-04-10 devnull [
7 cfa37a7b 2004-04-10 devnull .B -
8 cfa37a7b 2004-04-10 devnull ]
9 cfa37a7b 2004-04-10 devnull [
10 cfa37a7b 2004-04-10 devnull .B -o
11 cfa37a7b 2004-04-10 devnull ]
12 cfa37a7b 2004-04-10 devnull [
13 cfa37a7b 2004-04-10 devnull .I file
14 cfa37a7b 2004-04-10 devnull ]
15 cfa37a7b 2004-04-10 devnull .SH DESCRIPTION
16 cfa37a7b 2004-04-10 devnull .I Ed
17 cfa37a7b 2004-04-10 devnull is a venerable text editor.
18 cfa37a7b 2004-04-10 devnull .PP
19 cfa37a7b 2004-04-10 devnull If a
20 cfa37a7b 2004-04-10 devnull .I file
21 cfa37a7b 2004-04-10 devnull argument is given,
22 cfa37a7b 2004-04-10 devnull .I ed
23 cfa37a7b 2004-04-10 devnull simulates an
24 cfa37a7b 2004-04-10 devnull .L e
25 cfa37a7b 2004-04-10 devnull command (see below) on that file:
26 cfa37a7b 2004-04-10 devnull it is read into
27 cfa37a7b 2004-04-10 devnull .I ed's
28 cfa37a7b 2004-04-10 devnull buffer so that it can be edited.
29 cfa37a7b 2004-04-10 devnull The options are
30 cfa37a7b 2004-04-10 devnull .TP
31 cfa37a7b 2004-04-10 devnull .B -
32 cfa37a7b 2004-04-10 devnull Suppress the printing
33 cfa37a7b 2004-04-10 devnull of character counts by
34 cfa37a7b 2004-04-10 devnull .LR e ,
35 cfa37a7b 2004-04-10 devnull .LR r ,
36 cfa37a7b 2004-04-10 devnull and
37 cfa37a7b 2004-04-10 devnull .L w
38 01b50561 2020-05-30 rsc commands and of the confirming
39 cfa37a7b 2004-04-10 devnull .L !
40 cfa37a7b 2004-04-10 devnull by
41 cfa37a7b 2004-04-10 devnull .L !
42 cfa37a7b 2004-04-10 devnull commands.
43 cfa37a7b 2004-04-10 devnull .TP
44 cfa37a7b 2004-04-10 devnull .B -o
45 cfa37a7b 2004-04-10 devnull (for output piping)
46 cfa37a7b 2004-04-10 devnull Write all output to the standard error file except writing by
47 cfa37a7b 2004-04-10 devnull .L w
48 cfa37a7b 2004-04-10 devnull commands.
49 01b50561 2020-05-30 rsc If no
50 cfa37a7b 2004-04-10 devnull .I file
51 cfa37a7b 2004-04-10 devnull is given, make
52 c8b6342d 2005-01-13 devnull .B /dev/stdout
53 cfa37a7b 2004-04-10 devnull the remembered file; see the
54 cfa37a7b 2004-04-10 devnull .L e
55 cfa37a7b 2004-04-10 devnull command below.
56 cfa37a7b 2004-04-10 devnull .PP
57 cfa37a7b 2004-04-10 devnull .I Ed
58 cfa37a7b 2004-04-10 devnull operates on a `buffer', a copy of the file it is editing;
59 cfa37a7b 2004-04-10 devnull changes made
60 cfa37a7b 2004-04-10 devnull in the buffer have no effect on the file until a
61 cfa37a7b 2004-04-10 devnull .L w
62 cfa37a7b 2004-04-10 devnull (write)
63 cfa37a7b 2004-04-10 devnull command is given.
64 cfa37a7b 2004-04-10 devnull The copy of the text being edited resides
65 01b50561 2020-05-30 rsc in a temporary file called the
66 cfa37a7b 2004-04-10 devnull .IR buffer .
67 cfa37a7b 2004-04-10 devnull .PP
68 cfa37a7b 2004-04-10 devnull Commands to
69 cfa37a7b 2004-04-10 devnull .I ed
70 cfa37a7b 2004-04-10 devnull have a simple and regular structure: zero, one, or
71 cfa37a7b 2004-04-10 devnull two
72 cfa37a7b 2004-04-10 devnull .I addresses
73 cfa37a7b 2004-04-10 devnull followed by a single character
74 cfa37a7b 2004-04-10 devnull .IR command ,
75 cfa37a7b 2004-04-10 devnull possibly
76 cfa37a7b 2004-04-10 devnull followed by parameters to the command.
77 cfa37a7b 2004-04-10 devnull These addresses specify one or more lines in the buffer.
78 cfa37a7b 2004-04-10 devnull Missing addresses are supplied by default.
79 cfa37a7b 2004-04-10 devnull .PP
80 cfa37a7b 2004-04-10 devnull In general, only one command may appear on a line.
81 01b50561 2020-05-30 rsc Certain commands allow the
82 cfa37a7b 2004-04-10 devnull addition of text to the buffer.
83 cfa37a7b 2004-04-10 devnull While
84 cfa37a7b 2004-04-10 devnull .I ed
85 cfa37a7b 2004-04-10 devnull is accepting text, it is said
86 cfa37a7b 2004-04-10 devnull to be in
87 cfa37a7b 2004-04-10 devnull .I "input mode."
88 cfa37a7b 2004-04-10 devnull In this mode, no commands are recognized;
89 cfa37a7b 2004-04-10 devnull all input is merely collected.
90 01b50561 2020-05-30 rsc Input mode is left by typing a period
91 cfa37a7b 2004-04-10 devnull .L .
92 cfa37a7b 2004-04-10 devnull alone at the
93 cfa37a7b 2004-04-10 devnull beginning of a line.
94 cfa37a7b 2004-04-10 devnull .PP
95 cfa37a7b 2004-04-10 devnull .I Ed
96 01b50561 2020-05-30 rsc supports the
97 cfa37a7b 2004-04-10 devnull .I "regular expression"
98 cfa37a7b 2004-04-10 devnull notation described in
99 d32deab1 2020-08-16 rsc .MR regexp (7) .
100 cfa37a7b 2004-04-10 devnull Regular expressions are used in addresses to specify
101 cfa37a7b 2004-04-10 devnull lines and in one command
102 cfa37a7b 2004-04-10 devnull (see
103 cfa37a7b 2004-04-10 devnull .I s
104 cfa37a7b 2004-04-10 devnull below)
105 cfa37a7b 2004-04-10 devnull to specify a portion of a line which is to be replaced.
106 cfa37a7b 2004-04-10 devnull If it is desired to use one of
107 cfa37a7b 2004-04-10 devnull the regular expression metacharacters as an ordinary
108 cfa37a7b 2004-04-10 devnull character, that character may be preceded by
109 cfa37a7b 2004-04-10 devnull .RB ` \e '.
110 cfa37a7b 2004-04-10 devnull This also applies to the character bounding the regular
111 01b50561 2020-05-30 rsc expression (often
112 cfa37a7b 2004-04-10 devnull .LR / )
113 cfa37a7b 2004-04-10 devnull and to
114 cfa37a7b 2004-04-10 devnull .L \e
115 cfa37a7b 2004-04-10 devnull itself.
116 cfa37a7b 2004-04-10 devnull .PP
117 cfa37a7b 2004-04-10 devnull To understand addressing in
118 cfa37a7b 2004-04-10 devnull .I ed
119 cfa37a7b 2004-04-10 devnull it is necessary to know that at any time there is a
120 cfa37a7b 2004-04-10 devnull .I "current line."
121 cfa37a7b 2004-04-10 devnull Generally, the current line is
122 cfa37a7b 2004-04-10 devnull the last line affected by a command; however,
123 cfa37a7b 2004-04-10 devnull the exact effect on the current line
124 cfa37a7b 2004-04-10 devnull is discussed under the description of
125 cfa37a7b 2004-04-10 devnull each command.
126 cfa37a7b 2004-04-10 devnull Addresses are constructed as follows.
127 cfa37a7b 2004-04-10 devnull .TP
128 cfa37a7b 2004-04-10 devnull 1.
129 cfa37a7b 2004-04-10 devnull The character
130 cfa37a7b 2004-04-10 devnull .LR . ,
131 cfa37a7b 2004-04-10 devnull customarily called `dot',
132 cfa37a7b 2004-04-10 devnull addresses the current line.
133 cfa37a7b 2004-04-10 devnull .TP
134 cfa37a7b 2004-04-10 devnull 2.
135 01b50561 2020-05-30 rsc The character
136 cfa37a7b 2004-04-10 devnull .L $
137 cfa37a7b 2004-04-10 devnull addresses the last line of the buffer.
138 cfa37a7b 2004-04-10 devnull .TP
139 cfa37a7b 2004-04-10 devnull 3.
140 cfa37a7b 2004-04-10 devnull A decimal number
141 cfa37a7b 2004-04-10 devnull .I n
142 cfa37a7b 2004-04-10 devnull addresses the
143 cfa37a7b 2004-04-10 devnull .IR n -th
144 cfa37a7b 2004-04-10 devnull line of the buffer.
145 cfa37a7b 2004-04-10 devnull .TP
146 cfa37a7b 2004-04-10 devnull 4.
147 cfa37a7b 2004-04-10 devnull .BI \'x
148 cfa37a7b 2004-04-10 devnull addresses the line marked with the name
149 cfa37a7b 2004-04-10 devnull .IR x ,
150 cfa37a7b 2004-04-10 devnull which must be a lower-case letter.
151 cfa37a7b 2004-04-10 devnull Lines are marked with the
152 cfa37a7b 2004-04-10 devnull .L k
153 cfa37a7b 2004-04-10 devnull command.
154 cfa37a7b 2004-04-10 devnull .TP
155 cfa37a7b 2004-04-10 devnull 5.
156 cfa37a7b 2004-04-10 devnull A regular expression enclosed in slashes (
157 cfa37a7b 2004-04-10 devnull .LR / )
158 cfa37a7b 2004-04-10 devnull addresses
159 cfa37a7b 2004-04-10 devnull the line found by searching forward from the current line
160 cfa37a7b 2004-04-10 devnull and stopping at the first line containing a
161 cfa37a7b 2004-04-10 devnull string that matches the regular expression.
162 cfa37a7b 2004-04-10 devnull If necessary the search wraps around to the beginning of the
163 cfa37a7b 2004-04-10 devnull buffer.
164 cfa37a7b 2004-04-10 devnull .TP
165 cfa37a7b 2004-04-10 devnull 6.
166 01b50561 2020-05-30 rsc A regular expression enclosed in queries
167 cfa37a7b 2004-04-10 devnull .L ?
168 cfa37a7b 2004-04-10 devnull addresses
169 cfa37a7b 2004-04-10 devnull the line found by searching backward from the current line
170 cfa37a7b 2004-04-10 devnull and stopping at the first line containing
171 cfa37a7b 2004-04-10 devnull a string that matches the regular expression.
172 cfa37a7b 2004-04-10 devnull If necessary
173 cfa37a7b 2004-04-10 devnull the search wraps around to the end of the buffer.
174 cfa37a7b 2004-04-10 devnull .TP
175 cfa37a7b 2004-04-10 devnull 7.
176 01b50561 2020-05-30 rsc An address followed by a plus sign
177 cfa37a7b 2004-04-10 devnull .L +
178 cfa37a7b 2004-04-10 devnull or a minus sign
179 cfa37a7b 2004-04-10 devnull .L -
180 cfa37a7b 2004-04-10 devnull followed by a decimal number specifies that address plus
181 cfa37a7b 2004-04-10 devnull (resp. minus) the indicated number of lines.
182 cfa37a7b 2004-04-10 devnull The plus sign may be omitted.
183 cfa37a7b 2004-04-10 devnull .TP
184 cfa37a7b 2004-04-10 devnull 8.
185 01b50561 2020-05-30 rsc An address followed by
186 cfa37a7b 2004-04-10 devnull .L +
187 cfa37a7b 2004-04-10 devnull (or
188 cfa37a7b 2004-04-10 devnull .LR - )
189 cfa37a7b 2004-04-10 devnull followed by a
190 cfa37a7b 2004-04-10 devnull regular expression enclosed in slashes specifies the first
191 cfa37a7b 2004-04-10 devnull matching line following (or preceding) that address.
192 cfa37a7b 2004-04-10 devnull The search wraps around if necessary.
193 01b50561 2020-05-30 rsc The
194 cfa37a7b 2004-04-10 devnull .L +
195 cfa37a7b 2004-04-10 devnull may be omitted, so
196 cfa37a7b 2004-04-10 devnull .L 0/x/
197 cfa37a7b 2004-04-10 devnull addresses the
198 cfa37a7b 2004-04-10 devnull .I first
199 01b50561 2020-05-30 rsc line in the buffer with an
200 cfa37a7b 2004-04-10 devnull .LR x .
201 01b50561 2020-05-30 rsc Enclosing the regular expression in
202 cfa37a7b 2004-04-10 devnull .L ?
203 cfa37a7b 2004-04-10 devnull reverses the search direction.
204 cfa37a7b 2004-04-10 devnull .TP
205 cfa37a7b 2004-04-10 devnull 9.
206 01b50561 2020-05-30 rsc If an address begins with
207 cfa37a7b 2004-04-10 devnull .L +
208 cfa37a7b 2004-04-10 devnull or
209 cfa37a7b 2004-04-10 devnull .L -
210 cfa37a7b 2004-04-10 devnull the addition or subtraction is taken with respect to the current line;
211 cfa37a7b 2004-04-10 devnull e.g.\&
212 cfa37a7b 2004-04-10 devnull .L -5
213 cfa37a7b 2004-04-10 devnull is understood to mean
214 cfa37a7b 2004-04-10 devnull .LR .-5 .
215 cfa37a7b 2004-04-10 devnull .TP
216 cfa37a7b 2004-04-10 devnull 10.
217 01b50561 2020-05-30 rsc If an address ends with
218 cfa37a7b 2004-04-10 devnull .L +
219 cfa37a7b 2004-04-10 devnull or
220 cfa37a7b 2004-04-10 devnull .LR - ,
221 cfa37a7b 2004-04-10 devnull then 1 is added (resp. subtracted).
222 cfa37a7b 2004-04-10 devnull As a consequence of this rule and rule 9,
223 cfa37a7b 2004-04-10 devnull the address
224 cfa37a7b 2004-04-10 devnull .L -
225 cfa37a7b 2004-04-10 devnull refers to the line before the current line.
226 cfa37a7b 2004-04-10 devnull Moreover,
227 cfa37a7b 2004-04-10 devnull trailing
228 cfa37a7b 2004-04-10 devnull .L +
229 cfa37a7b 2004-04-10 devnull and
230 cfa37a7b 2004-04-10 devnull .L -
231 cfa37a7b 2004-04-10 devnull characters
232 cfa37a7b 2004-04-10 devnull have cumulative effect, so
233 cfa37a7b 2004-04-10 devnull .L --
234 cfa37a7b 2004-04-10 devnull refers to the current
235 cfa37a7b 2004-04-10 devnull line less 2.
236 cfa37a7b 2004-04-10 devnull .TP
237 cfa37a7b 2004-04-10 devnull 11.
238 cfa37a7b 2004-04-10 devnull To maintain compatibility with earlier versions of the editor,
239 01b50561 2020-05-30 rsc the character
240 cfa37a7b 2004-04-10 devnull .L ^
241 01b50561 2020-05-30 rsc in addresses is
242 cfa37a7b 2004-04-10 devnull equivalent to
243 cfa37a7b 2004-04-10 devnull .LR - .
244 cfa37a7b 2004-04-10 devnull .PP
245 cfa37a7b 2004-04-10 devnull Commands may require zero, one, or two addresses.
246 cfa37a7b 2004-04-10 devnull Commands which require no addresses regard the presence
247 cfa37a7b 2004-04-10 devnull of an address as an error.
248 cfa37a7b 2004-04-10 devnull Commands which accept one or two addresses
249 cfa37a7b 2004-04-10 devnull assume default addresses when insufficient are given.
250 cfa37a7b 2004-04-10 devnull If more addresses are given than a command requires,
251 cfa37a7b 2004-04-10 devnull the last one or two (depending on what is accepted) are used.
252 cfa37a7b 2004-04-10 devnull .PP
253 cfa37a7b 2004-04-10 devnull Addresses are separated from each other typically by a comma
254 cfa37a7b 2004-04-10 devnull .LR , .
255 cfa37a7b 2004-04-10 devnull They may also be separated by a semicolon
256 cfa37a7b 2004-04-10 devnull .LR ; .
257 01b50561 2020-05-30 rsc In this case the current line
258 cfa37a7b 2004-04-10 devnull is set to
259 cfa37a7b 2004-04-10 devnull the previous address before the next address is interpreted.
260 cfa37a7b 2004-04-10 devnull If no address precedes a comma or semicolon, line 1 is assumed;
261 cfa37a7b 2004-04-10 devnull if no address follows, the last line of the buffer is assumed.
262 cfa37a7b 2004-04-10 devnull The second address of any two-address sequence
263 cfa37a7b 2004-04-10 devnull must correspond to a line following the line corresponding to the first address.
264 cfa37a7b 2004-04-10 devnull .PP
265 cfa37a7b 2004-04-10 devnull In the following list of
266 cfa37a7b 2004-04-10 devnull .I ed
267 cfa37a7b 2004-04-10 devnull commands, the default addresses
268 cfa37a7b 2004-04-10 devnull are shown in parentheses.
269 cfa37a7b 2004-04-10 devnull The parentheses are not part of
270 cfa37a7b 2004-04-10 devnull the address, but are used to show that the given addresses are
271 cfa37a7b 2004-04-10 devnull the default.
272 cfa37a7b 2004-04-10 devnull `Dot' means the current line.
273 cfa37a7b 2004-04-10 devnull .TP
274 cfa37a7b 2004-04-10 devnull .RB (\|\fL.\fP\|) \|a
275 cfa37a7b 2004-04-10 devnull .br
276 cfa37a7b 2004-04-10 devnull .ns
277 cfa37a7b 2004-04-10 devnull .TP
278 cfa37a7b 2004-04-10 devnull <text>
279 cfa37a7b 2004-04-10 devnull .br
280 cfa37a7b 2004-04-10 devnull .ns
281 cfa37a7b 2004-04-10 devnull .TP
282 cfa37a7b 2004-04-10 devnull .B .
283 cfa37a7b 2004-04-10 devnull Read the given text
284 cfa37a7b 2004-04-10 devnull and append it after the addressed line.
285 cfa37a7b 2004-04-10 devnull Dot is left
286 cfa37a7b 2004-04-10 devnull on the last line input, if there
287 cfa37a7b 2004-04-10 devnull were any, otherwise at the addressed line.
288 01b50561 2020-05-30 rsc Address
289 cfa37a7b 2004-04-10 devnull .L 0
290 cfa37a7b 2004-04-10 devnull is legal for this command; text is placed
291 cfa37a7b 2004-04-10 devnull at the beginning of the buffer.
292 cfa37a7b 2004-04-10 devnull .TP
293 cfa37a7b 2004-04-10 devnull .RB (\|\fL.,.\fP\|) \|b [ +- ][\fIpagesize\fP][ pln\fR]
294 cfa37a7b 2004-04-10 devnull Browse.
295 cfa37a7b 2004-04-10 devnull Print a `page', normally 20 lines.
296 01b50561 2020-05-30 rsc The optional
297 cfa37a7b 2004-04-10 devnull .L +
298 cfa37a7b 2004-04-10 devnull (default) or
299 cfa37a7b 2004-04-10 devnull .L -
300 cfa37a7b 2004-04-10 devnull specifies whether the next or previous
301 cfa37a7b 2004-04-10 devnull page is to be printed.
302 cfa37a7b 2004-04-10 devnull The optional
303 cfa37a7b 2004-04-10 devnull .I pagesize
304 cfa37a7b 2004-04-10 devnull is the number of lines in a page.
305 cfa37a7b 2004-04-10 devnull The optional
306 cfa37a7b 2004-04-10 devnull .LR p ,
307 cfa37a7b 2004-04-10 devnull .LR n ,
308 01b50561 2020-05-30 rsc or
309 cfa37a7b 2004-04-10 devnull .L l
310 cfa37a7b 2004-04-10 devnull causes printing in the specified format, initially
311 cfa37a7b 2004-04-10 devnull .LR p .
312 01b50561 2020-05-30 rsc Pagesize and format are remembered between
313 cfa37a7b 2004-04-10 devnull .L b
314 cfa37a7b 2004-04-10 devnull commands.
315 cfa37a7b 2004-04-10 devnull Dot is left at the last line displayed.
316 cfa37a7b 2004-04-10 devnull .TP
317 cfa37a7b 2004-04-10 devnull .RB (\|\fL.,.\fP\|) \|c
318 cfa37a7b 2004-04-10 devnull .br
319 cfa37a7b 2004-04-10 devnull .ns
320 cfa37a7b 2004-04-10 devnull .TP
321 cfa37a7b 2004-04-10 devnull <text>
322 cfa37a7b 2004-04-10 devnull .br
323 cfa37a7b 2004-04-10 devnull .ns
324 cfa37a7b 2004-04-10 devnull .TP
325 cfa37a7b 2004-04-10 devnull .B .
326 cfa37a7b 2004-04-10 devnull Change.
327 cfa37a7b 2004-04-10 devnull Delete the addressed lines, then accept input
328 cfa37a7b 2004-04-10 devnull text to replace these lines.
329 cfa37a7b 2004-04-10 devnull Dot is left at the last line input; if there were none,
330 cfa37a7b 2004-04-10 devnull it is left at the line preceding the deleted lines.
331 cfa37a7b 2004-04-10 devnull .TP
332 cfa37a7b 2004-04-10 devnull .RB (\|\fL.,.\fP\|) \|d
333 cfa37a7b 2004-04-10 devnull Delete the addressed lines from the buffer.
334 cfa37a7b 2004-04-10 devnull Dot is set to the line following the last line deleted, or to
335 cfa37a7b 2004-04-10 devnull the last line of the buffer if the deleted lines had no successor.
336 cfa37a7b 2004-04-10 devnull .TP
337 cfa37a7b 2004-04-10 devnull .BI e " filename"
338 cfa37a7b 2004-04-10 devnull Edit.
339 cfa37a7b 2004-04-10 devnull Delete the entire contents of the buffer;
340 cfa37a7b 2004-04-10 devnull then read the named file into the buffer.
341 cfa37a7b 2004-04-10 devnull Dot is set to the last line of the buffer.
342 cfa37a7b 2004-04-10 devnull The number of characters read is typed.
343 cfa37a7b 2004-04-10 devnull The file name is remembered for possible use in later
344 cfa37a7b 2004-04-10 devnull .LR e ,
345 cfa37a7b 2004-04-10 devnull .LR r ,
346 cfa37a7b 2004-04-10 devnull or
347 cfa37a7b 2004-04-10 devnull .L w
348 cfa37a7b 2004-04-10 devnull commands.
349 cfa37a7b 2004-04-10 devnull If
350 cfa37a7b 2004-04-10 devnull .I filename
351 cfa37a7b 2004-04-10 devnull is missing, the remembered name is used.
352 cfa37a7b 2004-04-10 devnull .TP
353 cfa37a7b 2004-04-10 devnull .BI E " filename"
354 cfa37a7b 2004-04-10 devnull Unconditional
355 cfa37a7b 2004-04-10 devnull .LR e ;
356 cfa37a7b 2004-04-10 devnull see
357 cfa37a7b 2004-04-10 devnull .RL ` q '
358 cfa37a7b 2004-04-10 devnull below.
359 cfa37a7b 2004-04-10 devnull .TP
360 cfa37a7b 2004-04-10 devnull .BI f " filename"
361 cfa37a7b 2004-04-10 devnull Print the currently remembered file name.
362 cfa37a7b 2004-04-10 devnull If
363 cfa37a7b 2004-04-10 devnull .I filename
364 cfa37a7b 2004-04-10 devnull is given,
365 cfa37a7b 2004-04-10 devnull the currently remembered file name is first changed to
366 cfa37a7b 2004-04-10 devnull .IR filename .
367 cfa37a7b 2004-04-10 devnull .TP
368 cfa37a7b 2004-04-10 devnull .RB (\|\fL1,$\fP\|) \|g/\fIregular\ expression\fP/\fIcommand\ list\fP
369 cfa37a7b 2004-04-10 devnull .PD 0
370 cfa37a7b 2004-04-10 devnull .TP
371 cfa37a7b 2004-04-10 devnull .RB (\|\fL1,$\fP\|) \|g/\fIregular\ expression\fP/
372 cfa37a7b 2004-04-10 devnull .TP
373 cfa37a7b 2004-04-10 devnull .RB (\|\fL1,$\fP\|) \|g/\fIregular\ expression\fP
374 cfa37a7b 2004-04-10 devnull .PD
375 cfa37a7b 2004-04-10 devnull Global.
376 cfa37a7b 2004-04-10 devnull First mark every line which matches
377 cfa37a7b 2004-04-10 devnull the given
378 cfa37a7b 2004-04-10 devnull .IR regular expression .
379 cfa37a7b 2004-04-10 devnull Then for every such line, execute the
380 cfa37a7b 2004-04-10 devnull .I command list
381 cfa37a7b 2004-04-10 devnull with dot initially set to that line.
382 cfa37a7b 2004-04-10 devnull A single command or the first of multiple commands
383 cfa37a7b 2004-04-10 devnull appears on the same line with the global command.
384 cfa37a7b 2004-04-10 devnull All lines of a multi-line list except the last line must end with
385 cfa37a7b 2004-04-10 devnull .LR \e .
386 cfa37a7b 2004-04-10 devnull The
387 cfa37a7b 2004-04-10 devnull .RB \&` \&. \&'
388 cfa37a7b 2004-04-10 devnull terminating input mode for an
389 cfa37a7b 2004-04-10 devnull .LR a ,
390 cfa37a7b 2004-04-10 devnull .LR i ,
391 cfa37a7b 2004-04-10 devnull .L c
392 cfa37a7b 2004-04-10 devnull command may be omitted if it would be on the
393 cfa37a7b 2004-04-10 devnull last line of the command list.
394 cfa37a7b 2004-04-10 devnull The commands
395 cfa37a7b 2004-04-10 devnull .L g
396 cfa37a7b 2004-04-10 devnull and
397 cfa37a7b 2004-04-10 devnull .L v
398 cfa37a7b 2004-04-10 devnull are not permitted in the command list.
399 cfa37a7b 2004-04-10 devnull Any character other than space or newline may
400 01b50561 2020-05-30 rsc be used instead of
401 cfa37a7b 2004-04-10 devnull .L /
402 cfa37a7b 2004-04-10 devnull to delimit the regular expression.
403 cfa37a7b 2004-04-10 devnull The second and third forms mean
404 cfa37a7b 2004-04-10 devnull .BI g/ regular\ expression /p \f1.
405 cfa37a7b 2004-04-10 devnull .TP
406 cfa37a7b 2004-04-10 devnull .RB (\| .\| ) \|i
407 cfa37a7b 2004-04-10 devnull .PD 0
408 cfa37a7b 2004-04-10 devnull .TP
409 cfa37a7b 2004-04-10 devnull <text>
410 cfa37a7b 2004-04-10 devnull .TP
411 cfa37a7b 2004-04-10 devnull .B .
412 cfa37a7b 2004-04-10 devnull Insert the given text before the addressed line.
413 cfa37a7b 2004-04-10 devnull Dot is left at the last line input, or, if there were none,
414 cfa37a7b 2004-04-10 devnull at the line before the addressed line.
415 cfa37a7b 2004-04-10 devnull This command differs from the
416 cfa37a7b 2004-04-10 devnull .I a
417 cfa37a7b 2004-04-10 devnull command only in the placement of the
418 cfa37a7b 2004-04-10 devnull text.
419 cfa37a7b 2004-04-10 devnull .PD
420 cfa37a7b 2004-04-10 devnull .TP
421 cfa37a7b 2004-04-10 devnull .RB (\| .,.+1 \|) \|j
422 cfa37a7b 2004-04-10 devnull Join the addressed lines into a single line;
423 cfa37a7b 2004-04-10 devnull intermediate newlines are deleted.
424 cfa37a7b 2004-04-10 devnull Dot is left at the resulting line.
425 cfa37a7b 2004-04-10 devnull .TP
426 cfa37a7b 2004-04-10 devnull .RB (\|\fL.\fP\|) \|k\fIx\fP
427 cfa37a7b 2004-04-10 devnull Mark the addressed line with name
428 cfa37a7b 2004-04-10 devnull .IR x ,
429 cfa37a7b 2004-04-10 devnull which must be a lower-case letter.
430 cfa37a7b 2004-04-10 devnull The address form
431 cfa37a7b 2004-04-10 devnull .BI \' x
432 cfa37a7b 2004-04-10 devnull then addresses this line.
433 cfa37a7b 2004-04-10 devnull .ne 2.5
434 cfa37a7b 2004-04-10 devnull .TP
435 cfa37a7b 2004-04-10 devnull .RB (\|\fL.,.\fP\|) \|l
436 cfa37a7b 2004-04-10 devnull List.
437 cfa37a7b 2004-04-10 devnull Print the addressed lines in an unambiguous way:
438 cfa37a7b 2004-04-10 devnull a tab is printed as
439 cfa37a7b 2004-04-10 devnull .LR \et ,
440 cfa37a7b 2004-04-10 devnull a backspace as
441 cfa37a7b 2004-04-10 devnull .LR \eb ,
442 cfa37a7b 2004-04-10 devnull backslashes as
443 cfa37a7b 2004-04-10 devnull .LR \e\e ,
444 95220bf8 2020-05-30 rsc and non-printing ASCII characters as
445 cfa37a7b 2004-04-10 devnull a backslash, an
446 cfa37a7b 2004-04-10 devnull .LR x ,
447 95220bf8 2020-05-30 rsc and two hexadecimal digits.
448 95220bf8 2020-05-30 rsc non-ASCII characters in the Basic Multilingual Plane
449 95220bf8 2020-05-30 rsc are printed as a backslash, a small
450 95220bf8 2020-05-30 rsc .LR u ,
451 95220bf8 2020-05-30 rsc and four hexadecimal digits; and characters above the
452 95220bf8 2020-05-30 rsc Basic Multilingual Plane are printed as a backslash,
453 95220bf8 2020-05-30 rsc a big
454 95220bf8 2020-05-30 rsc .LR U ,
455 01b50561 2020-05-30 rsc and eight hexadecimal digits.
456 cfa37a7b 2004-04-10 devnull Long lines are folded,
457 cfa37a7b 2004-04-10 devnull with the second and subsequent sub-lines indented one tab stop.
458 cfa37a7b 2004-04-10 devnull If the last character in the line is a blank,
459 cfa37a7b 2004-04-10 devnull it is followed by
460 cfa37a7b 2004-04-10 devnull .LR \en .
461 cfa37a7b 2004-04-10 devnull An
462 cfa37a7b 2004-04-10 devnull .L l
463 cfa37a7b 2004-04-10 devnull may be appended, like
464 cfa37a7b 2004-04-10 devnull .LR p ,
465 cfa37a7b 2004-04-10 devnull to any non-I/O command.
466 cfa37a7b 2004-04-10 devnull .TP
467 cfa37a7b 2004-04-10 devnull .RB (\|\fL.,.\fP\|) \|m\fIa
468 cfa37a7b 2004-04-10 devnull Move.
469 cfa37a7b 2004-04-10 devnull Reposition the addressed lines after the line
470 cfa37a7b 2004-04-10 devnull addressed by
471 cfa37a7b 2004-04-10 devnull .IR a .
472 cfa37a7b 2004-04-10 devnull Dot is left at the last moved line.
473 cfa37a7b 2004-04-10 devnull .TP
474 cfa37a7b 2004-04-10 devnull .RB (\|\fL.,.\fP\|) \|n
475 cfa37a7b 2004-04-10 devnull Number.
476 cfa37a7b 2004-04-10 devnull Perform
477 cfa37a7b 2004-04-10 devnull .LR p ,
478 cfa37a7b 2004-04-10 devnull prefixing each line with its line number and a tab.
479 cfa37a7b 2004-04-10 devnull An
480 cfa37a7b 2004-04-10 devnull .L n
481 cfa37a7b 2004-04-10 devnull may be appended, like
482 cfa37a7b 2004-04-10 devnull .LR p ,
483 cfa37a7b 2004-04-10 devnull to any non-I/O command.
484 cfa37a7b 2004-04-10 devnull .TP
485 cfa37a7b 2004-04-10 devnull .RB (\|\fL.,.\fP\|) \|p
486 cfa37a7b 2004-04-10 devnull Print the addressed lines.
487 cfa37a7b 2004-04-10 devnull Dot is left at the last line printed.
488 cfa37a7b 2004-04-10 devnull A
489 cfa37a7b 2004-04-10 devnull .L p
490 cfa37a7b 2004-04-10 devnull appended to any non-I/O command causes the then current line
491 cfa37a7b 2004-04-10 devnull to be printed after the command is executed.
492 cfa37a7b 2004-04-10 devnull .TP
493 cfa37a7b 2004-04-10 devnull .RB (\|\fL.,.\fP\|) \|P
494 cfa37a7b 2004-04-10 devnull This command is a synonym for
495 cfa37a7b 2004-04-10 devnull .LR p .
496 cfa37a7b 2004-04-10 devnull .TP
497 cfa37a7b 2004-04-10 devnull .B q
498 cfa37a7b 2004-04-10 devnull Quit the editor.
499 cfa37a7b 2004-04-10 devnull No automatic write
500 cfa37a7b 2004-04-10 devnull of a file is done.
501 cfa37a7b 2004-04-10 devnull A
502 cfa37a7b 2004-04-10 devnull .L q
503 cfa37a7b 2004-04-10 devnull or
504 cfa37a7b 2004-04-10 devnull .L e
505 cfa37a7b 2004-04-10 devnull command is considered to be in error if the buffer has
506 cfa37a7b 2004-04-10 devnull been modified since the last
507 cfa37a7b 2004-04-10 devnull .LR w ,
508 cfa37a7b 2004-04-10 devnull .LR q ,
509 cfa37a7b 2004-04-10 devnull or
510 cfa37a7b 2004-04-10 devnull .L e
511 cfa37a7b 2004-04-10 devnull command.
512 cfa37a7b 2004-04-10 devnull .TP
513 cfa37a7b 2004-04-10 devnull .B Q
514 cfa37a7b 2004-04-10 devnull Quit unconditionally.
515 cfa37a7b 2004-04-10 devnull .TP
516 cfa37a7b 2004-04-10 devnull .RB ( $ )\|r\ \fIfilename\fP
517 cfa37a7b 2004-04-10 devnull Read in the given file after the addressed line.
518 cfa37a7b 2004-04-10 devnull If no
519 cfa37a7b 2004-04-10 devnull .I filename
520 cfa37a7b 2004-04-10 devnull is given, the remembered file name is used.
521 cfa37a7b 2004-04-10 devnull The file name is remembered if there were no
522 cfa37a7b 2004-04-10 devnull remembered file name already.
523 cfa37a7b 2004-04-10 devnull If the read is successful, the number of characters
524 cfa37a7b 2004-04-10 devnull read is printed.
525 cfa37a7b 2004-04-10 devnull Dot is left at the last line read from the file.
526 cfa37a7b 2004-04-10 devnull .TP
527 cfa37a7b 2004-04-10 devnull .RB (\|\fL.,.\fP\|) \|s\fIn\fP/\fIregular\ expression\fP/\fIreplacement\fP/
528 cfa37a7b 2004-04-10 devnull .PD 0
529 cfa37a7b 2004-04-10 devnull .TP
530 cfa37a7b 2004-04-10 devnull .RB (\|\fL.,.\fP\|) \|s\fIn\fP/\fIregular\ expression\fP/\fIreplacement\fP/g
531 cfa37a7b 2004-04-10 devnull .TP
532 cfa37a7b 2004-04-10 devnull .RB (\|\fL.,.\fP\|) \|s\fIn\fP/\fIregular\ expression\fP/\fIreplacement\fP
533 cfa37a7b 2004-04-10 devnull .PD
534 cfa37a7b 2004-04-10 devnull Substitute.
535 cfa37a7b 2004-04-10 devnull Search each addressed
536 cfa37a7b 2004-04-10 devnull line for an occurrence of the specified regular expression.
537 cfa37a7b 2004-04-10 devnull On each line in which
538 cfa37a7b 2004-04-10 devnull .I n
539 cfa37a7b 2004-04-10 devnull matches are found
540 cfa37a7b 2004-04-10 devnull .RI ( n
541 cfa37a7b 2004-04-10 devnull defaults to 1 if missing),
542 cfa37a7b 2004-04-10 devnull the
543 cfa37a7b 2004-04-10 devnull .IR n th
544 cfa37a7b 2004-04-10 devnull matched string is replaced by the replacement specified.
545 01b50561 2020-05-30 rsc If the global replacement indicator
546 cfa37a7b 2004-04-10 devnull .L g
547 cfa37a7b 2004-04-10 devnull appears after the command,
548 cfa37a7b 2004-04-10 devnull all subsequent matches on the line are also replaced.
549 cfa37a7b 2004-04-10 devnull It is an error for the substitution to fail on all addressed lines.
550 cfa37a7b 2004-04-10 devnull Any character other than space or newline
551 01b50561 2020-05-30 rsc may be used instead of
552 cfa37a7b 2004-04-10 devnull .L /
553 cfa37a7b 2004-04-10 devnull to delimit the regular expression
554 cfa37a7b 2004-04-10 devnull and the replacement.
555 cfa37a7b 2004-04-10 devnull Dot is left at the last line substituted.
556 cfa37a7b 2004-04-10 devnull The third form means
557 cfa37a7b 2004-04-10 devnull .BI s n / regular\ expression / replacement\fP/p\f1.
558 cfa37a7b 2004-04-10 devnull The second
559 cfa37a7b 2004-04-10 devnull .L /
560 cfa37a7b 2004-04-10 devnull may be omitted if the replacement is
561 cfa37a7b 2004-04-10 devnull empty.
562 cfa37a7b 2004-04-10 devnull .IP
563 01b50561 2020-05-30 rsc An ampersand
564 cfa37a7b 2004-04-10 devnull .L &
565 cfa37a7b 2004-04-10 devnull appearing in the replacement
566 cfa37a7b 2004-04-10 devnull is replaced by the string matching the regular expression.
567 cfa37a7b 2004-04-10 devnull The characters
568 cfa37a7b 2004-04-10 devnull .BI \e n\f1,
569 cfa37a7b 2004-04-10 devnull where
570 cfa37a7b 2004-04-10 devnull .I n
571 cfa37a7b 2004-04-10 devnull is a digit,
572 cfa37a7b 2004-04-10 devnull are replaced by the text matched by the
573 cfa37a7b 2004-04-10 devnull .IR n -th
574 cfa37a7b 2004-04-10 devnull regular subexpression
575 cfa37a7b 2004-04-10 devnull enclosed between
576 cfa37a7b 2004-04-10 devnull .L (
577 cfa37a7b 2004-04-10 devnull and
578 cfa37a7b 2004-04-10 devnull .LR ) .
579 cfa37a7b 2004-04-10 devnull When
580 cfa37a7b 2004-04-10 devnull nested parenthesized subexpressions
581 cfa37a7b 2004-04-10 devnull are present,
582 cfa37a7b 2004-04-10 devnull .I n
583 cfa37a7b 2004-04-10 devnull is determined by counting occurrences of
584 cfa37a7b 2004-04-10 devnull .L (
585 cfa37a7b 2004-04-10 devnull starting from the left.
586 cfa37a7b 2004-04-10 devnull .IP
587 01b50561 2020-05-30 rsc A literal
588 cfa37a7b 2004-04-10 devnull .LR & ,
589 cfa37a7b 2004-04-10 devnull .LR / ,
590 cfa37a7b 2004-04-10 devnull .L \e
591 cfa37a7b 2004-04-10 devnull or newline may be included in a replacement
592 cfa37a7b 2004-04-10 devnull by prefixing it with
593 cfa37a7b 2004-04-10 devnull .LR \e .
594 cfa37a7b 2004-04-10 devnull .TP
595 cfa37a7b 2004-04-10 devnull .RB (\|\fL.,.\fP\|) \|t\|\fIa
596 cfa37a7b 2004-04-10 devnull Transfer.
597 01b50561 2020-05-30 rsc Copy the addressed lines
598 cfa37a7b 2004-04-10 devnull after the line addressed by
599 cfa37a7b 2004-04-10 devnull .IR a .
600 cfa37a7b 2004-04-10 devnull Dot is left at the last line of the copy.
601 cfa37a7b 2004-04-10 devnull .TP
602 cfa37a7b 2004-04-10 devnull .RB (\|\fL.,.\fP\|) \|u
603 cfa37a7b 2004-04-10 devnull Undo.
604 cfa37a7b 2004-04-10 devnull Restore the preceding contents
605 cfa37a7b 2004-04-10 devnull of the first addressed line (sic), which must be the last line
606 cfa37a7b 2004-04-10 devnull in which a substitution was made (double sic).
607 cfa37a7b 2004-04-10 devnull .TP
608 cfa37a7b 2004-04-10 devnull .RB (\|\fL1,$\fP\|) \|v/\fIregular\ expression\fP/\fIcommand\ list\fP
609 cfa37a7b 2004-04-10 devnull This command is the same as the global command
610 cfa37a7b 2004-04-10 devnull .L g
611 cfa37a7b 2004-04-10 devnull except that the command list is executed with
612 cfa37a7b 2004-04-10 devnull dot initially set to every line
613 cfa37a7b 2004-04-10 devnull .I except
614 cfa37a7b 2004-04-10 devnull those
615 cfa37a7b 2004-04-10 devnull matching the regular expression.
616 cfa37a7b 2004-04-10 devnull .TP
617 cfa37a7b 2004-04-10 devnull .RB (\|\fL1,$\fP\|) \|w " \fIfilename\fP"
618 cfa37a7b 2004-04-10 devnull Write the addressed lines to
619 cfa37a7b 2004-04-10 devnull the given file.
620 cfa37a7b 2004-04-10 devnull If the file does not exist,
621 cfa37a7b 2004-04-10 devnull it is created with mode 666 (readable and writable by everyone).
622 cfa37a7b 2004-04-10 devnull If no
623 cfa37a7b 2004-04-10 devnull .I filename
624 cfa37a7b 2004-04-10 devnull is given, the remembered file name, if any, is used.
625 01b50561 2020-05-30 rsc The file name is remembered if there were no
626 cfa37a7b 2004-04-10 devnull remembered file name already.
627 cfa37a7b 2004-04-10 devnull Dot is unchanged.
628 cfa37a7b 2004-04-10 devnull If the write is successful, the number of characters written is
629 cfa37a7b 2004-04-10 devnull printed.
630 cfa37a7b 2004-04-10 devnull .TP
631 cfa37a7b 2004-04-10 devnull .RB (\|\fL1,$\fP\|) \|W " \fIfilename\fP"
632 cfa37a7b 2004-04-10 devnull Perform
633 cfa37a7b 2004-04-10 devnull .LR w ,
634 cfa37a7b 2004-04-10 devnull but append to, instead of overwriting, any existing file contents.
635 cfa37a7b 2004-04-10 devnull .TP
636 cfa37a7b 2004-04-10 devnull .RB ( $ ) \|=
637 cfa37a7b 2004-04-10 devnull Print the line number of the addressed line.
638 cfa37a7b 2004-04-10 devnull Dot is unchanged.
639 cfa37a7b 2004-04-10 devnull .TP
640 cfa37a7b 2004-04-10 devnull .BI ! shell\ command
641 01b50561 2020-05-30 rsc Send the remainder of the line after the
642 cfa37a7b 2004-04-10 devnull .L !
643 cfa37a7b 2004-04-10 devnull to
644 d32deab1 2020-08-16 rsc .MR rc (1)
645 cfa37a7b 2004-04-10 devnull to be interpreted as a command.
646 cfa37a7b 2004-04-10 devnull Dot is unchanged.
647 cfa37a7b 2004-04-10 devnull .TP
648 cfa37a7b 2004-04-10 devnull .RB (\| .+1 )\|<newline>
649 cfa37a7b 2004-04-10 devnull An address without a command is taken as a
650 01b50561 2020-05-30 rsc .L p
651 cfa37a7b 2004-04-10 devnull command.
652 cfa37a7b 2004-04-10 devnull A terminal
653 cfa37a7b 2004-04-10 devnull .L /
654 cfa37a7b 2004-04-10 devnull may be omitted from the address.
655 cfa37a7b 2004-04-10 devnull A blank line alone is equivalent to
656 cfa37a7b 2004-04-10 devnull .LR .+1p ;
657 cfa37a7b 2004-04-10 devnull it is useful
658 cfa37a7b 2004-04-10 devnull for stepping through text.
659 cfa37a7b 2004-04-10 devnull .PP
660 01b50561 2020-05-30 rsc If an interrupt signal
661 cfa37a7b 2004-04-10 devnull .SM (DEL)
662 cfa37a7b 2004-04-10 devnull is sent,
663 cfa37a7b 2004-04-10 devnull .I ed
664 01b50561 2020-05-30 rsc prints a
665 cfa37a7b 2004-04-10 devnull .L ?
666 cfa37a7b 2004-04-10 devnull and returns to its command level.
667 cfa37a7b 2004-04-10 devnull .PP
668 cfa37a7b 2004-04-10 devnull When reading a file,
669 cfa37a7b 2004-04-10 devnull .I ed
670 cfa37a7b 2004-04-10 devnull discards
671 cfa37a7b 2004-04-10 devnull .SM NUL
672 cfa37a7b 2004-04-10 devnull characters
673 cfa37a7b 2004-04-10 devnull and all characters after the last newline.
674 cfa37a7b 2004-04-10 devnull .SH FILES
675 cfa37a7b 2004-04-10 devnull .B /tmp/e*
676 cfa37a7b 2004-04-10 devnull .br
677 cfa37a7b 2004-04-10 devnull .B ed.hup
678 cfa37a7b 2004-04-10 devnull \ \ work is saved here if terminal hangs up
679 cfa37a7b 2004-04-10 devnull .SH SOURCE
680 c3674de4 2005-01-11 devnull .B \*9/src/cmd/ed.c
681 cfa37a7b 2004-04-10 devnull .SH "SEE ALSO"
682 d32deab1 2020-08-16 rsc .MR sam (1) ,
683 d32deab1 2020-08-16 rsc .MR sed (1) ,
684 d32deab1 2020-08-16 rsc .MR regexp (7)
685 cfa37a7b 2004-04-10 devnull .SH DIAGNOSTICS
686 cfa37a7b 2004-04-10 devnull .BI ? name
687 cfa37a7b 2004-04-10 devnull for inaccessible file;
688 cfa37a7b 2004-04-10 devnull .L ?TMP
689 cfa37a7b 2004-04-10 devnull for temporary file overflow;
690 cfa37a7b 2004-04-10 devnull .L ?
691 cfa37a7b 2004-04-10 devnull for errors in commands or other overflows.