Commit | Line | Data |
---|---|---|
ba83de7e | 1 | .\" @(#)ed.1 6.2 (Berkeley) %G% |
fd315f2c | 2 | .\" |
7426f8ff | 3 | .TH ED 1 "" |
fd315f2c KM |
4 | .AT 3 |
5 | .if t .ds q \(aa | |
6 | .if n .ds q ' | |
7 | .SH NAME | |
8 | ed \- text editor | |
9 | .SH SYNOPSIS | |
10 | .B ed | |
11 | [ | |
12 | .B \- | |
fd315f2c KM |
13 | ] [ name ] |
14 | .SH DESCRIPTION | |
15 | .I Ed | |
16 | is the standard text editor. | |
17 | .PP | |
18 | If a | |
19 | .I name | |
20 | argument is given, | |
21 | .I ed | |
22 | simulates an | |
23 | .I e | |
24 | command (see below)\| on the named file; that is to say, | |
25 | the file is read into | |
26 | .I ed's | |
27 | buffer so that it can be edited. | |
fd315f2c KM |
28 | The optional |
29 | .B \- | |
30 | suppresses the printing | |
31 | of explanatory output | |
32 | and should be used | |
33 | when the standard input is | |
34 | an editor script. | |
35 | .PP | |
36 | .I Ed | |
37 | operates on a copy of any file it is editing; changes made | |
38 | in the copy have no effect on the file until a | |
39 | .IR w "" | |
40 | (write)\| | |
41 | command is given. | |
42 | The copy of the text being edited resides | |
43 | in a temporary file called the | |
44 | .IR buffer . | |
45 | .PP | |
46 | Commands to | |
47 | .I ed | |
48 | have a simple and regular structure: zero or | |
49 | more | |
50 | .I addresses | |
51 | followed by a single character | |
52 | .I command, | |
53 | possibly | |
54 | followed by parameters to the command. | |
55 | These addresses specify one or more lines in the buffer. | |
56 | Missing addresses are supplied by default. | |
57 | .PP | |
58 | In general, only one command may appear on a line. | |
59 | Certain commands allow the | |
60 | addition of text to the buffer. | |
61 | While | |
62 | .I ed | |
63 | is accepting text, it is said | |
64 | to be in | |
65 | .I "input mode." | |
66 | In this mode, no commands are recognized; | |
67 | all input is merely collected. | |
68 | Input mode is left by typing a period `\fB.\fR' alone at the | |
69 | beginning of a line. | |
70 | .PP | |
71 | .I Ed | |
72 | supports a limited form of | |
73 | .I "regular expression" | |
74 | notation. | |
75 | A regular expression specifies | |
76 | a set of strings of characters. | |
77 | A member of this set of strings is said to be | |
78 | .I matched | |
79 | by the regular expression. | |
80 | In the following specification for regular expressions | |
81 | the word `character' means any character but newline. | |
82 | .IP 1. | |
83 | Any character except a special character | |
84 | matches itself. | |
85 | Special characters are | |
86 | the regular expression delimiter plus | |
87 | .RB \e\|[\| . | |
88 | and sometimes ^\|*\|$. | |
89 | .IP 2. | |
90 | A | |
91 | .B . | |
92 | matches any character. | |
93 | .IP 3. | |
94 | A \e followed by any character except a digit or (\|) matches that character. | |
95 | .IP 4. | |
96 | A nonempty string | |
97 | .I s | |
98 | bracketed | |
99 | .RI [ \|s\| ] | |
100 | (or | |
101 | .RI [^ s\| ]) | |
102 | matches any character in (or not in) | |
103 | .I s. | |
104 | In | |
105 | .I s, | |
106 | \e has no special meaning, and ] may only appear as | |
107 | the first letter. | |
108 | A substring | |
109 | .I a\-b, | |
110 | with | |
111 | .I a | |
112 | and | |
113 | .I b | |
114 | in ascending ASCII order, stands for the inclusive | |
115 | range of ASCII characters. | |
116 | .IP 5. | |
117 | A regular expression of form 1-4 followed by * matches a sequence of | |
118 | 0 or more matches of the regular expression. | |
119 | .IP 6. | |
120 | A regular expression, | |
121 | .I x, | |
122 | of form 1-8, bracketed | |
123 | .RI \e( \|x\| \e) | |
124 | matches what | |
125 | .I x | |
126 | matches. | |
127 | .IP 7. | |
128 | A \e followed by a digit | |
129 | .I n | |
130 | matches a copy of the string that the | |
131 | bracketed regular expression beginning with the | |
132 | .IR n th | |
133 | \e( matched. | |
134 | .IP 8. | |
135 | A regular expression of form 1-8, | |
136 | .I x, | |
137 | followed by a regular expression of form 1-7, | |
138 | .I y | |
139 | matches a match for | |
140 | .I x | |
141 | followed by a match for | |
142 | .I y, | |
143 | with the | |
144 | .I x | |
145 | match being as long as possible while still permitting a | |
146 | .I y | |
147 | match. | |
148 | .IP 9. | |
149 | A regular expression of form 1-8 preceded by ^ | |
150 | (or followed by $), is constrained to matches that | |
151 | begin at the left (or end at the right) end of a line. | |
152 | .IP 10. | |
153 | A regular expression of form 1-9 picks out the | |
154 | longest among the leftmost matches in a line. | |
155 | .IP 11. | |
156 | An empty regular expression stands for a copy of the | |
157 | last regular expression encountered. | |
158 | .PP | |
159 | Regular expressions are used in addresses to specify | |
160 | lines and in one command | |
161 | (see | |
162 | .I s | |
163 | below)\| | |
164 | to specify a portion of a line which is to be replaced. | |
165 | If it is desired to use one of | |
166 | the regular expression metacharacters as an ordinary | |
167 | character, that character may be preceded by `\e'. | |
168 | This also applies to the character bounding the regular | |
169 | expression (often `/')\| and to `\e' itself. | |
170 | .PP | |
171 | To understand addressing in | |
172 | .I ed | |
173 | it is necessary to know that at any time there is a | |
174 | .I "current line." | |
175 | Generally speaking, the current line is | |
176 | the last line affected by a command; however, | |
177 | the exact effect on the current line | |
178 | is discussed under the description of | |
179 | the command. | |
180 | Addresses are constructed as follows. | |
181 | .TP | |
182 | 1. | |
183 | The character `\fB.\fR' addresses the current line. | |
184 | .TP | |
185 | 2. | |
186 | The character `$' addresses the last line of the buffer. | |
187 | .TP | |
188 | 3. | |
189 | A decimal number | |
190 | .I n | |
191 | addresses the | |
192 | .IR n -th | |
193 | line of the buffer. | |
194 | .TP | |
195 | 4. | |
196 | `\(fm\fIx\fR' addresses the line marked with the name | |
197 | .IR x , | |
198 | which must be a lower-case letter. | |
199 | Lines are marked with the | |
200 | .I k | |
201 | command described below. | |
202 | .TP | |
203 | 5. | |
204 | A regular expression enclosed in slashes `/' addresses | |
205 | the line found by searching forward from the current line | |
206 | and stopping at the first line containing a | |
207 | string that matches the regular expression. | |
208 | If necessary the search wraps around to the beginning of the | |
209 | buffer. | |
210 | .TP | |
211 | 6. | |
212 | A regular expression enclosed in queries `?' addresses | |
213 | the line found by searching backward from the current line | |
214 | and stopping at the first line containing | |
215 | a string that matches the regular expression. | |
216 | If necessary | |
217 | the search wraps around to the end of the buffer. | |
218 | .TP | |
219 | 7. | |
220 | An address followed by a plus sign `+' | |
221 | or a minus sign `\-' followed by a decimal number specifies that address plus | |
222 | (resp. minus)\| the indicated number of lines. | |
223 | The plus sign may be omitted. | |
224 | .TP | |
225 | 8. | |
226 | If an address begins with `+' or `\-' | |
227 | the addition or subtraction is taken with respect to the current line; | |
228 | e.g. `\-5' is understood to mean `\fB.\fR\-5'. | |
229 | .TP | |
230 | 9. | |
231 | If an address ends with `+' or `\-', | |
232 | then 1 is added (resp. subtracted). | |
233 | As a consequence of this rule and rule 8, | |
234 | the address `\-' refers to the line before the current line. | |
235 | Moreover, | |
236 | trailing | |
237 | `+' and `\-' characters | |
238 | have cumulative effect, so `\-\-' refers to the current | |
239 | line less 2. | |
240 | .TP | |
241 | 10. | |
242 | To maintain compatibility with earlier versions of the editor, | |
243 | the character `^' in addresses is | |
244 | equivalent to `\-'. | |
245 | .PP | |
246 | Commands may require zero, one, or two addresses. | |
247 | Commands which require no addresses regard the presence | |
248 | of an address as an error. | |
249 | Commands which accept one or two addresses | |
250 | assume default addresses when insufficient are given. | |
251 | If more addresses are given than such a command requires, | |
252 | the last one or two (depending on what is accepted)\| are used. | |
253 | .PP | |
254 | Addresses are separated from each other typically by a comma | |
255 | `\fB,\fR'. | |
256 | They may also be separated by a semicolon | |
257 | `\fB;\fR'. | |
258 | In this case the current line `\fB.\fR' is set to | |
259 | the previous address before the next address is interpreted. | |
260 | This feature can be used to determine the starting | |
261 | line for forward and backward searches (`/', `?')\|. | |
262 | The second address of any two-address sequence | |
263 | must correspond to a line following the line corresponding to the first address. | |
264 | The special form `%' | |
265 | is an abbreviation for the address pair `1,$'. | |
266 | .PP | |
267 | In the following list of | |
268 | .I ed | |
269 | commands, the default addresses | |
270 | are shown in parentheses. | |
271 | The parentheses are not part of | |
272 | the address, but are used to show that the given addresses are | |
273 | the default. | |
274 | .PP | |
275 | As mentioned, it is generally illegal for more than one | |
276 | command to appear on a line. | |
277 | However, most commands may be suffixed by `p' | |
278 | or by `l', in which case | |
279 | the current line is either | |
280 | printed or listed respectively | |
281 | in the way discussed below. | |
282 | Commands may also be suffixed by `n', | |
283 | meaning the output of the command is to | |
284 | be line numbered. | |
285 | These suffixes may be combined in any order. | |
286 | .TP 5 | |
287 | .RB (\| .\| )\|a | |
288 | .br | |
289 | .ns | |
290 | .TP 5 | |
291 | <text> | |
292 | .br | |
293 | .ns | |
294 | .TP 5 | |
295 | .B . | |
296 | .br | |
297 | The append command reads the given text | |
298 | and appends it after the addressed line. | |
299 | `\fB.\fR' is left | |
300 | on the last line input, if there | |
301 | were any, otherwise at the addressed line. | |
302 | Address `0' is legal for this command; text is placed | |
303 | at the beginning of the buffer. | |
304 | .TP 5 | |
305 | .RB (\| .\| ,\ .\| )\|c | |
306 | .br | |
307 | .ns | |
308 | .TP 5 | |
309 | <text> | |
310 | .br | |
311 | .ns | |
312 | .TP 5 | |
313 | .B . | |
314 | .br | |
315 | The change | |
316 | command deletes the addressed lines, then accepts input | |
317 | text which replaces these lines. | |
318 | `\fB.\fR' is left at the last line input; if there were none, | |
319 | it is left at the line preceding the deleted lines. | |
320 | .TP 5 | |
321 | .RB (\| .\| ,\ .\| )\|d | |
322 | The delete command deletes the addressed lines from the buffer. | |
323 | The line originally after the last line deleted becomes the current line; | |
324 | if the lines deleted were originally at the end, | |
325 | the new last line becomes the current line. | |
326 | .TP 5 | |
327 | e filename | |
328 | The edit | |
329 | command causes the entire contents of the buffer to be deleted, | |
330 | and then the named file to be read in. | |
331 | `\fB.\fR' is set to the last line of the buffer. | |
332 | The number of characters read is typed. | |
333 | `filename' is remembered for possible use as a default file name | |
334 | in a subsequent | |
335 | .I r | |
336 | or | |
337 | .I w | |
338 | command. | |
339 | If `filename' is missing, the remembered name is used. | |
340 | .TP 5 | |
341 | E filename | |
342 | This command is the same as | |
343 | .I e, | |
344 | except that no diagnostic results when no | |
345 | .I w | |
346 | has been given since the last buffer alteration. | |
347 | .TP 5 | |
348 | f filename | |
349 | The filename command prints the currently remembered file name. | |
350 | If `filename' is given, | |
351 | the currently remembered file name is changed to `filename'. | |
352 | .TP 5 | |
353 | (1,$)\|g/regular expression/command list | |
354 | In the global | |
355 | command, the first step is to mark every line which matches | |
356 | the given regular expression. | |
357 | Then for every such line, the | |
358 | given command list is executed with `\fB.\fR' initially set to that line. | |
359 | A single command or the first of multiple commands | |
360 | appears on the same line with the global command. | |
361 | All lines of a multi-line list except the last line must be ended with `\e'. | |
362 | .I A, | |
363 | .I i, | |
364 | and | |
365 | .I c | |
366 | commands and associated input are permitted; | |
367 | the `\fB.\fR' terminating input mode may be omitted if it would be on the | |
368 | last line of the command list. | |
369 | The commands | |
370 | .I g | |
371 | and | |
372 | .I v | |
373 | are not permitted in the command list. | |
374 | .TP 5 | |
375 | .RB (\| .\| )\|i | |
376 | .ns | |
377 | .TP 5 | |
378 | <text> | |
379 | .br | |
380 | .ns | |
381 | .TP 5 | |
382 | .B . | |
383 | .br | |
384 | This command inserts the given text before the addressed line. | |
385 | `\fB.\fR' is left at the last line input, or, if there were none, | |
386 | at the line before the addressed line. | |
387 | This command differs from the | |
388 | .I a | |
389 | command only in the placement of the | |
390 | text. | |
391 | .TP 5 | |
392 | .RB (\| .\| ,\ . +1)\|j | |
393 | This command joins the addressed lines into a single line; | |
394 | intermediate newlines simply disappear. | |
395 | `\fB.\fR' is left at the resulting line. | |
396 | .TP 5 | |
397 | ( \fB. \fR)\|k\fIx\fR | |
398 | The mark command marks the addressed line with | |
399 | name | |
400 | .I x, | |
401 | which must be a lower-case letter. | |
402 | The address form `\(fm\fIx\fR' then addresses this line. | |
403 | .ne 2.5 | |
404 | .TP 5 | |
405 | .RB (\| .\| ,\ .\| )\|l | |
406 | The list command | |
407 | prints the addressed lines in an unambiguous way: | |
408 | non-graphic characters are | |
409 | printed in two-digit octal, | |
410 | and long lines are folded. | |
411 | The | |
412 | .I l | |
413 | command may be placed on the same line after any non-i/o | |
414 | command. | |
415 | .TP 5 | |
416 | .RB (\| .\| ,\ .\| )\|m\fIa | |
417 | The move command repositions the addressed lines after the line | |
418 | addressed by | |
419 | .IR a . | |
420 | The last of the moved lines becomes the current line. | |
421 | .TP 5 | |
fd315f2c KM |
422 | .RB (\| .\| ,\ .\| )\|p |
423 | The print command prints the addressed lines. | |
424 | `\fB.\fR' | |
425 | is left at the last line printed. | |
426 | The | |
427 | .I p | |
428 | command | |
429 | may | |
430 | be placed on the same line after any non-i/o command. | |
431 | .TP | |
432 | .RB (\| .\| ,\ .\| )\|P | |
433 | This command is a synonym for | |
434 | .I p. | |
435 | .TP 5 | |
436 | q | |
437 | The quit command causes | |
438 | .I ed | |
439 | to exit. | |
440 | No automatic write | |
441 | of a file is done. | |
442 | .TP 5 | |
443 | Q | |
444 | This command is the same as | |
445 | .I q, | |
446 | except that no diagnostic results when no | |
447 | .I w | |
448 | has been given since the last buffer alteration. | |
449 | .TP 5 | |
450 | ($)\|r filename | |
451 | The read command | |
452 | reads in the given file after the addressed line. | |
453 | If no file name is given, | |
454 | the remembered file name, if any, is used | |
455 | (see | |
456 | .I e | |
457 | and | |
458 | .I f | |
459 | commands)\|. | |
460 | The file name is remembered if there was no | |
461 | remembered file name already. | |
462 | Address `0' is legal for | |
463 | .I r | |
464 | and causes the | |
465 | file to be read at the beginning of the buffer. | |
466 | If the read is successful, the number of characters | |
467 | read is typed. | |
468 | `\fB.\fR' is left at the last line read in from the file. | |
469 | .TP 5 | |
470 | (\| \fB.\fR\|, \fB.\fR\|)\|s/regular expression/replacement/ or, | |
471 | .br | |
472 | .ns | |
473 | .TP 5 | |
474 | (\| \fB.\fR\|, \fB.\fR\|)\|s/regular expression/replacement/g | |
475 | The substitute command searches each addressed | |
476 | line for an occurrence of the specified regular expression. | |
477 | On each line in which a match is found, | |
478 | all matched strings are replaced by the replacement specified, | |
479 | if the global replacement indicator `g' appears after the command. | |
480 | If the global indicator does not appear, only the first occurrence | |
481 | of the matched string is replaced. | |
482 | It is an error for the substitution to fail on all addressed lines. | |
483 | Any punctuation character | |
484 | may be used instead of `/' to delimit the regular expression | |
485 | and the replacement. | |
486 | `\fB.\fR' is left at the last line substituted. | |
487 | .IP | |
488 | An ampersand `&' appearing in the replacement | |
489 | is replaced by the string matching the regular expression. | |
490 | The special meaning of `&' in this context may be | |
491 | suppressed by preceding it by `\e'. | |
492 | The characters | |
493 | .I `\|\en' | |
494 | where | |
495 | .I n | |
496 | is a digit, | |
497 | are replaced by the text matched by the | |
498 | .IR n -th | |
499 | regular subexpression | |
500 | enclosed between `\e(' and `\e)'. | |
501 | When | |
502 | nested, parenthesized subexpressions | |
503 | are present, | |
504 | .I n | |
505 | is determined by counting occurrences of `\e(' starting from the left. | |
506 | .IP | |
507 | Lines may be split by substituting new-line characters into them. | |
508 | The new-line in the | |
509 | replacement string | |
510 | must be escaped by preceding it by `\e'. | |
511 | .IP | |
512 | One or two trailing delimiters may be omitted, | |
513 | implying the `p' suffix. | |
514 | The special form `s' followed by | |
515 | .I no | |
516 | delimiters | |
517 | repeats the most recent substitute command | |
518 | on the addressed lines. | |
519 | The `s' may be followed by the letters | |
520 | .B r | |
521 | (use the most recent regular expression for the | |
522 | left hand side, instead of the most recent | |
523 | left hand side of a substitute command), | |
524 | .B p | |
525 | (complement the setting of the | |
526 | .I p | |
527 | suffix from the previous substitution), or | |
528 | .B g | |
529 | (complement the setting of the | |
530 | .I g | |
531 | suffix). | |
532 | These letters may be combined in any order. | |
533 | .TP 5 | |
534 | .RB (\| .\| ,\ .\| )\|t\|\fIa | |
535 | This command acts just like the | |
536 | .I m | |
537 | command, except that a copy of the addressed lines is placed | |
538 | after address | |
539 | .I a | |
540 | (which may be 0). | |
541 | `\fB.\fR' is left on the last line of the copy. | |
542 | .TP 5 | |
543 | .RB (\| .\| ,\ .\| )\|u | |
544 | The undo command restores the buffer to it's state | |
545 | before the most recent buffer modifying command. | |
546 | The current line is also restored. | |
547 | Buffer modifying commands are | |
548 | .I a, c, d, g, i, k, m, r, s, t, | |
549 | and | |
550 | .I v. | |
551 | For purposes of undo, | |
552 | .I g | |
553 | and | |
554 | .I v | |
555 | are considered to be a single buffer modifying command. | |
556 | Undo is its own inverse. | |
557 | .IP | |
558 | When | |
559 | .I ed | |
560 | runs out of memory | |
561 | (at about 8000 lines on any 16 bit mini-computer | |
562 | such as the PDP-11) | |
563 | This full undo is not possible, and | |
564 | .I u | |
565 | can only undo the effect of the most recent | |
566 | substitute on the current line. | |
567 | This restricted undo also applies to editor scripts | |
568 | when | |
569 | .I ed | |
570 | is invoked with the | |
571 | .B - | |
572 | option. | |
573 | .TP 5 | |
574 | (1, $)\|v/regular expression/command list | |
575 | This command is the same as the global command | |
576 | .I g | |
577 | except that the command list is executed | |
578 | .I g | |
579 | with `\fB.\fR' initially set to every line | |
580 | .I except | |
581 | those | |
582 | matching the regular expression. | |
583 | .TP 5 | |
584 | (1, $)\|w filename | |
585 | .br | |
586 | The write command writes the addressed lines onto | |
587 | the given file. | |
588 | If the file does not exist, | |
589 | it is created. | |
590 | The file name is remembered if there was no | |
591 | remembered file name already. | |
592 | If no file name is given, | |
593 | the remembered file name, if any, is used | |
594 | (see | |
595 | .I e | |
596 | and | |
597 | .I f | |
598 | commands)\|. | |
599 | `\fB.\fR' is unchanged. | |
600 | If the command is successful, the number of characters written is | |
601 | printed. | |
602 | .TP | |
603 | (1, $)\|W filename | |
604 | This command is the same as | |
605 | .I w, | |
606 | except that the addressed lines are appended to the file. | |
607 | .TP 5 | |
608 | (1, $)\|wq filename | |
609 | This command is the same as | |
610 | .I w | |
611 | except that afterwards a | |
612 | .I q | |
613 | command is done, | |
614 | exiting the editor | |
615 | after the file is written. | |
616 | .TP 5 | |
fd315f2c KM |
617 | .RB (\| .\| +1)\|z or, |
618 | .br | |
619 | .ns | |
620 | .TP 5 | |
621 | .RB (\| .\| +1)\|z\fIn | |
622 | This command scrolls through the buffer starting at the addressed line. | |
623 | 22 (or | |
624 | .I n, | |
625 | if given) | |
626 | lines are printed. | |
627 | The last line printed becomes the current line. | |
628 | The value | |
629 | .I n | |
630 | is sticky, in that it becomes the default for | |
631 | future | |
632 | .I z | |
633 | commands. | |
634 | .TP 5 | |
635 | ($)\|= | |
636 | The line number of the addressed line is typed. | |
637 | `\fB.\fR' is unchanged by this command. | |
638 | .TP 5 | |
639 | !<shell command> | |
640 | The remainder of the line after the `!' is sent | |
641 | to | |
642 | .IR sh (1) | |
643 | to be interpreted as a command. | |
644 | .RB ` . ' | |
645 | is unchanged. | |
646 | .TP 5 | |
647 | .RB (\| . +1,\| . +1)\|<newline> | |
648 | An address alone on a line causes the addressed line to be printed. | |
649 | A blank line alone is equivalent to `.+1p'; it is useful | |
650 | for stepping through text. | |
651 | If two addresses are present with no | |
652 | intervening semicolon, | |
653 | .I ed | |
654 | prints the range of lines. | |
655 | If they are separated by a semicolon, | |
656 | the second line is printed. | |
657 | .PP | |
658 | If an interrupt signal (ASCII DEL)\| is sent, | |
659 | .I ed | |
660 | prints `?interrupted' | |
661 | and returns to its command level. | |
662 | .PP | |
663 | Some size limitations: | |
664 | 512 characters per line, | |
665 | 256 characters per global command list, | |
666 | 64 characters per file name, | |
667 | and, on mini computers, | |
668 | 128K characters in the temporary file. | |
669 | The limit on the number of lines depends on the amount of core: | |
670 | each line takes 2 words. | |
671 | .PP | |
672 | When reading a file, | |
673 | .I ed | |
674 | discards ASCII NUL characters | |
675 | and all characters after the last newline. | |
676 | It refuses to read files containing non-ASCII characters. | |
677 | .SH FILES | |
678 | /tmp/e* | |
679 | .br | |
680 | edhup: work is saved here if terminal hangs up | |
681 | .SH "SEE ALSO" | |
682 | B. W. Kernighan, | |
683 | .I | |
684 | A Tutorial Introduction to the ED Text Editor | |
685 | .br | |
686 | B. W. Kernighan, | |
687 | .I Advanced editing on UNIX | |
688 | .br | |
d92b1877 | 689 | ex(1), sed(1), crypt(1) |
fd315f2c KM |
690 | .SH DIAGNOSTICS |
691 | `?name' for inaccessible file; | |
d92b1877 | 692 | `?self-explanatory message' |
fd315f2c KM |
693 | for other errors. |
694 | .PP | |
695 | To protect against throwing away valuable work, | |
696 | a | |
697 | .I q | |
698 | or | |
699 | .I e | |
700 | command is considered to be in error, unless a | |
701 | .I w | |
702 | has occurred since the last buffer change. | |
703 | A second | |
704 | .I q | |
705 | or | |
706 | .I e | |
707 | will be obeyed regardless. | |
708 | .SH BUGS | |
709 | The | |
710 | .I l | |
711 | command mishandles DEL. | |
712 | .br | |
713 | The | |
714 | .I undo | |
715 | command causes marks to be lost on affected lines. |