use btree instead of hashing, don't have to resort later
[unix-history] / usr / src / usr.bin / ex / READ_ME
CommitLineData
9d06d9dd
KB
1This is version 3 of the editor. It is too large to fit on a pdp-11
2unless you have overlay code. (Such code is available for v7 unix on 2bsd.)
3
4Version 2.13 corresponds to version 3 without the enhancements in 3.
5There is no reason to use 2.13 unless you have a pdp-11 that does not have
6overlay software, since 3 contains all the bug fixes and some new features.
7
8Special installation notes for this version.
92) The include file varargs.h should be installed, as the printf here needs it.
103) The include file local/uparm.h should be installed, as ex_tune.h needs it.
11 The contents of this include file can be modified if you wish to place
12 the editor in a nonstandard location.
13
14Conditional compilation flags:
15 -DTRACE for debugging (wont then fit on an 11)
16 -DVFORK for UCB Vax/Unix with the vfork system call.
17 -DCHDIR compile in undocumented old chdir (cd) command
18 -DLISP compile in lisp hacks
19 -DUCVISUAL compile in code to handle \ escapes for visual on
20 upper case only terminals. gross.
21 -DCRYPT -x option to edit encrypted files
22 -DFLOCKFILE compile in advisory file locking ala 4.[23X]
cf775833
KB
23
24=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
25
26Version 3.7 October 16, 1981
27
28 It is now possible to split lines with substitute commands from vi,
29 by using ^V<return> in the rhs. This takes care of the last
30 good reason for using ex command mode.
31
32 Mode lines are now supported. Put a line containing
33 ex: xxx :
34 in the first or last 5 lines of the file, where xxx is any ex
35 command you want executed when that file is read in. To make
36 other programs happy, it should probably be inside a comment.
37 You can use vi: as well as ex:. (Note: no space allowed
38 between the "ex" and ":". The spaces around xxx are considered
39 part of the command, and so are optional.)
40
41 If there is a file .exrc in the current directory, it will be
42 sourced when you enter vi, after your EXINIT or ~/.exrc.
43
44 The changeable scrolling region of the vt100 is now used in
45 place of insert line, resulting in much better performance.
46
47 Vi uses the new AL, DL, LE, RI, DO, and UP (all upper case)
48 termcap capabilities, which are parameterized versions of their
49 lower case equivalents. This will results in better performance
50 on ANSI terminals, and especially on the Tektronix 4025 which
51 has parameterized local motions but cannot cursor address.
52
53 Vi uses backtabs again. Now it knows how to handle backtabs on
54 terminals that have tabs set at intervals other than 8, and it
55 won't use backtabs if gtty indicates it can't use tabs.
56
57 A bug causing <escape> <del> to core dump vi has been fixed.
58
59 A bug causing writes to filters when editing encrypted files
60 to write encrypted text has been fixed.
61
62 A bug causing the message "substitution loop", when you enter a
63 1,$s/xxx/yyy/g with lots of changes, has been fixed.
64
65 A bug causing the current directory to be chmodded to 0 if you
66 set nomesg after starting up the editor has been fixed. Note
67 that the nomesg option is intended for your EXINIT, since it only
68 takes effect on entry to the editor.
69
70 The eat newline glitch has been fixed so that vt100's and tab132's
71 handle long lines correctly.
72
73 Some internal changes have been made so that vi can run under UNIX
74 on the Bell Labs 3B machine, the BBN C/70, and the IBM 370.
75
76Version 3.6 October 30, 1980
77
78 A kernel problem on the V7 pdp-11 overlay systems which causes
79 bad EMT traps to happen randomly, core dumping the editor,
80 has been programmed around by catching EMT traps.
81
82 A bug which prevented using a screen larger than 48 lines has
83 been fixed.
84
85 A bug which allowed you to set window to a value larger than
86 your screen size has been fixed.
87
88 The screen size limit on non-VM/Unix systems has been increased
89 to 66 lines or 5000 characters, to allow the Ann Arbor Ambassador
90 terminal to be used.
91
92 A bug which caused hangups to be ignored on USG systems has
93 been fixed.
94
95 A bug which caused maps with multiple changes on multiple lines
96 to mess up has been fixed.
97
98 If you get I/O errors, the file is considered "not edited" so
99 that you don't accidently clobber the good file with a munged
100 up buffer.
101
102 An inefficiency in 3.5 which caused the editor to always call
103 ttyname has been fixed.
104
105 A bug which prevented the "source" command from working in an
106 EXINIT or from visual has been fixed.
107
108 A bug which caused readonly to be cleared when reading from
109 a writable file with "r" has been fixed.
110
111 The name "suspend" has been made an alias for "stop".
112
113 The stop command now once again works correctly from command mode.
114
115 On a dumb terminal at 1200 baud, "slowopen" is now the default.
116
117 A bug in the shell script "makeoptions" which searched for a
118 string that appeared earlier in a comment has been fixed.
119
120 A bug that caused an infinite loop when you did ":s/\</&/g"
121 has been fixed.
122
123 A bug that caused & with no previous substitution to give
124 "re internal error" has been fixed.
125
126 A bug in the binary search algorithm for tags which sometimes
127 prevented the last tag in the file from being found has been fixed.
128
129 Error messages from expreserve no longer output a linefeed,
130 messing up the screen.
131
132 The message from expreserve telling you a buffer was saved when
133 your phone was hung up has be amended to say the editor was
134 terminated, since a kill can also produce that message.
135
136 The "directory" option, which has been broken for over
137 a year, has been fixed.
138
139 The "r" command no longer invokes input mode macros.
140
141 A bug which caused strangeness if you set wrapmargin to 1
142 and typed a line containing a backslash in column 80 has
143 been fixed.
144
145 A bug which caused the "r<cr>" at the wrapmargin column
146 to mess up has been fixed.
147
148 On terminals with both scroll reverse and insert line,
149 the least expensive of the two will be used to scroll up.
150 This is usually scroll reverse, which is much less annoying
151 than insert line on terminals such as the mime I and mime 2a.
152
153 A bug which caused vi to estimate the cost of cursor motion
154 without taking into account padding has been fixed.
155
156 The failure of the editor to check counts on ^F and ^B commands
157 has been fixed.
158
159 The "remap" option failed completely if it was turned off.
160 This has been fixed.
161
162 A check of the wrong limit on a buffer for the right hand side
163 of substitutions has been fixed. Overflowing this buffer could
164 produce a core dump.
165
166 A bug causing the editor to go into insert mode if you typed
167 return during an R command has been fixed.
168
169 A bug preventing the + command from working when you edit a
170 new file has been fixed by making it no longer an error to
171 edit a new file (when you first enter the editor.) Instead
172 you are told it is a new file.
173
174 If an error happens when you are writing out a file, such as
175 an interrupt, you are warned that the file is incomplete.
176
177Version 3.5 -- August 20, 1980
178
179 The provisions for changing the window size with a numeric
180 prefix argument to certain visual commands have been deleted.
181 The correct way to change the window size is to use the z
182 command, for example z5<cr> to change the window to 5 lines.
183
184 The code to handle the -x (encryption) option has been made
185 conditionally compiled, so that ex can run on an an 11/34 (!)
186 with overlays. Since this code calls getpass, stdio was
187 being pulled in even without VMUNIX being defined. The
188 savings from not defining CRYPT are about 4K of text and 4.5K
189 of bss.
190
191 Bill Joy put in a buffering scheme under the VMUNIX flag so
192 that up to 64K of file is edited in-core until you make enough
193 changes to force a temp file sync. This makes entry into the
194 editor much faster, but also makes vi much bigger.
195
196 The source to ex is now sccs'ed.
197
198 An undocumented "feature" which caused the ^^ command to return
199 to the previous tag, if in the current file, instead of the
200 previous file, has been removed.
201
202 A bug which prevented ex from compiling on systems with the new
203 tty driver but no process control (such as Cory) was fixed.
204
205Version 3.4 -- June 24, 1980
206
207 The visual page motion commands ^F and ^B now treat any preceding
208 counts as number of pages to move, instead of changes to the
209 window size. That is, 2^F moves forward 2 pages.
210
211 A :vi <file> command from visual mode is now treated the same
212 as a :edit <file> or :ex <file> command. The meaning of the
213 vi command from ex command mode is not affected.
214
215 Provisions to handle the new process stopping features of the
216 Berkeley TTY driver have been added. A new command, "stop",
217 takes you out of the editor cleanly and efficiently, returning
218 you to the shell. Resuming the editor puts you back in command
219 or visual mode, as appropriate. If autowrite is set and there
220 are outstanding changes, a write is done first unless you say
221 "stop!". From visual mode, the command ^Z is the same as :stop.
222 Note that if you have an arrow key that sends ^Z the stop function
223 will take priority over the arrow function. If you have your
224 "susp" character set to something besides ^Z, that key will be
225 honored as well.
226
227 A read only mode now lets you guarantee you won't clobber your
228 file by accident. You can set the on/off option "readonly" (ro)
229 and writes will fail unless you use an ! after the write.
230 Commands such as x, ZZ, and autowrite, and in general anything
231 that writes is affected. This option is turned on if you invoke
232 ex with the -R flag. A new link called "view" has been created.
233 View is just like vi but it sets readonly.
234
235 The encryption code from the v7 editor is now part of ex.
236 You invoke ex with the -x option and it will ask for a key,
237 as ed. The ed "x" command (to enter encryption mode from
238 within the editor) is not available.
239
240 The editor now adopts the convention that a null string in the
241 environment is the same as not being set. This applies to
242 TERM, TERMCAP, and EXINIT.
243
244 A word abbreviation mode is now available. You can define
245 abbreviations with the abbreviate command
246 :abbr foo find outer otter
247 which maps "foo" to "find outer otter". Abbreviations can be
248 turned off with the "unabbreviate" command. The syntax of these
249 commands is identical to the map and unmap commands, except
250 that the ! forms do not exist. Abbreviations are considered
251 when in visual input mode only, and only affect whole words
252 typed in, using the conservative definition. (Thus "foobar"
253 will not be mapped as it would using map!)
254 Abbreviate and unabbreviate can be abbreviated to "ab" and
255 "una", respectively.
256
257 The editor now supports certain terminals that use strings other
258 then \r and \n for return and linefeed by implementing the cr
259 and nl termcap options. (Thanks to UCLA for these enhancements).
260
261 The termcap attribute ns is now checked for, and ex refuses to
262 go into visual mode on such a terminal unless it has sf.
263
264 Terminals that can cursor address but cannot go up a line
265 now work in visual.
266
267 If you change your start and stop characters to something other
268 than the default ^S and ^Q, vi now turns them off. This causes
269 people who change them to escape not to lose so badly.
270 The quit character is once again turned off so that datamedias
271 which send ^\ for the right arrow key work.
272
273 The ~ command now repeats correctly with ".".
274
275 If you type in an unmatched ) or } in showmatch mode, the editor
276 will now beep to warn you about your mistake. The ) or } is
277 still accepted.
278
279 The way macros are undone has been improved considerably.
280 The number of changes inside the macro is counted, and just
281 before the second change the state before the macro is recreated
282 internally and saved to allow the macro to be undoable as a unit.
283 Hence, if the macro makes only one change the particular change is
284 undone (which will probably not redraw the screen). If no changes
285 are made (for example, the arrow keys) the previous thing that could
286 be undone is not clobbered.
287
288 The undomacro option has been deleted since it is no longer needed.
289
290 Editor scripts can now contain comments. Begin the comments with "
291 (double quote). Comments can be on their own line or come at the
292 end of command lines. The comment continues to the end of the line.
293
294 The 3rd version of the USG tty driver is now supported, making it
295 possible on USG systems to interrupt redrawing the screen and to
296 not flush output when interruptable commands take place.
297
298 The rewind command has been added to the list of commands that
299 the autowrite option knows about.
300
301 The wrapmargin option is now usable. The way it works has been
302 completely revamped. Now if you go past the margin (even in the
303 middle of a word) the entire word is erased and rewritten on the
304 next line. This changes the semantics of the number given to
305 wrapmargin. 0 still means off. Any other number is still a
306 distance from the right edge of the screen, but this location
307 is now the right edge of the area where wraps can take place,
308 instead of the left edge. Wrapmargin now behaves much like
309 fill/nojustify mode in nroff.
310
311 A bug on the USG system where hanging up the phone causes more
312 than one SIGHUP to be sent has been compensated for.
313
314 A bug which caused the :sh command not to send the vs and ti
315 sequences when you returned has been fixed.
316
317 A bug which caused a file that bombed out in the middle of
318 an edit command to be considered modified has been fixed.
319
320 A bug which caused the screen to be wrong after undoing a
321 :move command has been fixed.
322
323 A bug which messed up the buffer and the screen after
324 undoing a :join command has been fixed.
325
326 The source file ex_io.c has been split into ex_io.c and
327 ex_unix.c to avoid a problem where many C compilers overflowed
328 the symbol table.
329
330 A bug which prevented turning off your prompt in your .exrc
331 has been fixed.
332
333 Some of the code internal to the editor has been rearranged
334 and some comments added.
335
336 The bug fix to the USG tty driver to output a null character
337 as padding at 1200 baud has been improved to output a DEL
338 at 1200 baud or above.
339
340 Terminals with small screens (less than 20 columns or less
341 than 5 lines) should now work.
342
343 A bug which prevented you from entering the character DEL
344 into the buffer if you changed your interrupt character to
345 something else besides DEL has been fixed.
346
347 A bug which caused the current line to be clobbered when
348 you did a /, ?, or : command which mapped an input macro
349 successfully has been fixed.
350
351 If you map o to O and O to o and have remap set, the editor
352 now catches the infinite loop.
353
354 A put command after a macro now beeps instead of putting
355 a copy of the whole buffer. (Note that the arrow keys
356 on terminals are considered macros.)
357
358 A bug which caused things like d) and d} to miss the last
359 character when they should have deleted to the end of the
360 buffer has been fixed.
361
362 A bug which caused the last character to be lost when you
363 read in a file with no newline at the end of the last line
364 has been fixed.
365
366 A bug that caused garbage to be in the buffer if the temp file
367 overflowed has been fixed. (This only affected non-VMUNIX systems
368 since the temp file cannot overflow on VMUNIX.)
369
370 When a macro or global is undone, you no longer get picked up and
371 dropped on line 1.
372
373 The character | can now be escaped with \| in file names.
374
375 A bug which prevented the confirm option to a substitution that
376 was inside a source command has been fixed.
377
378 A bug which caused the editor to not work if the tab stop size
379 did not divide the screen width has been fixed.
380
381 A bug on HP terminals that caused the screen to be messed up if
382 you scrolled up something that began the same way as the echo line
383 has been fixed.
384
385 A macro bug which sometimes caused the next character after an
386 escape to be ignored on an HP terminal has been fixed.
387
388 A bug which caused unmap of strings with length 2 to fail has been
389 fixed.
390
391 A bug which left vi confused if you invoked a macro containing a
392 quit to command mode and then did an undo has been fixed.
393
394 An old ed bug which caused globals to fail when they did a substitute
395 on the next line has been fixed.
396
397 The % operator will now find matching square brackets the same way
398 it does parentheses and braces. It will not display them in
399 showmatch mode, however, and will not use a ] to match all ('s.
400
401 Code has been added to handle the Beehive Superbee terminal,
402 using f1 for escape and f2 for control C.
403
404 The default value of the option shell is now taken from the
405 environment variable SHELL, if present.
406
407Version 3.3 -- February 2, 1980
408
409 The default window sizes have been changed. At 300 baud the
410 window is now 8 lines (was 1/2 the screen size). At 1200 baud
411 the window is now 16 lines (was 2/3 the screen size, which was
412 usually also 16 for a typical 24 line CRT). At 9600 baud the
413 window is still the full screen size. Any baud rate less than
414 1200 behaves like 300, any over 1200 like 9600.
415
416 A new command mode command "x" (for "xit") has been added. This
417 is the same as wq but will not bother to write if there have been
418 no changes to the file. The command letter was chosen for
419 convenience and compatibilty with hed.
420
421 The command "ZZ" from vi is the same as ":x<cr>". This is
422 the recommended way to leave the editor. Z must be typed twice
423 since this is two easy to type by accident and has such severe
424 effects if unintentional.
425
426 The options w300, w1200, and w9600 can be set. They are synonyms
427 for "window", but only apply at 300, 1200, or 9600 baud, resp.
428 Thus you can specify you want a 12 line window at 300 baud and
429 a 23 line window at 1200 baud with
430 :set w300=12 w1200=23
431
432 It is now possible to say
433 :set window=5
434 and get the effect the next time the screen is redrawn from scratch.
435 (^L and Hit return to continue don't start from scratch.)
436 This is sort of pointless, since both
437 5:<cr>
438 and
439 z5<cr>
440 do the same thing with better results.
441
442 The editor no longer uses nondestructive space, except when in
443 insert mode. It instead prints the character it would be
444 moving over. This is a real win on terminals that use an
445 escape sequence to nd space.
446
447 It is now possible from visual to string several search expressions
448 together separated by semicolons the same as command mode. For
449 example, you can say
450 /foo/;/bar
451 from visual and it will move to the first "bar" after the next "foo".
452 This also works within one line.
453
454 The option "mapinput" is dead. It has been replaced by a much
455 more powerful mechanism: :map! (e.g. put an ! after the map).
456 Map and unmap commands with ! apply only to input, others apply
457 only to command mode.
458
459 The new option "timeout" (default on) causes macros to time out
460 after one second. Turn it off and they will wait forever.
461
462 By using map! and setting notimeout, it is possible to get the
463 effect of emacs abbreviation mode. Sanity checking is turned off
464 for map when ! is present. This is a crude facility and does not
465 take into account things like the abbreviation being part of a longer
466 word. It also does not echo until it is satisfied.
467
468 The new option "remap" (default on) causes the editor to attempt
469 to map the result of a macro mapping again until the mapping fails.
470 This makes it possible, say, to map q to # and #1 to something else
471 and get q1 mapped to something else. Turning it off makes it possible
472 to map ^L to l and map ^R to ^L without having ^R map to l.
473
474 The new option "undomacro" (default on) makes it possible to undo
475 macros as a unit. Leaving it off causes macros not to be treated
476 specially. Macros with zero or one change work better with noum,
477 with two or more changes better with um. This option may go away
478 if it becomes unnecessary.
479
480 The new (string) valued option "tags" allows you to specify a list
481 of tag files, similar to the "path" variable of csh. The files
482 are separated by spaces (which are entered preceded by a backslash)
483 and are searched left to right. The default value is
484 "tags /usr/lib/tags", which has the same effect as before.
485 It is recommended that "tags" always be the first entry.
486 On Ernie, /usr/lib/tags contains entries for the system defined
487 library procedures from section 3 of the manual.
488
489 ^R is now the same as ^L on terminals where the right arrow key
490 sends ^L (The tvi and the adm 31).
491
492 Looking for a tag now uses binary search.
493
494 The "q" command from visual no longer works at all. You must
495 use "Q" to get to ex command mode.
496
497 A minor incompatibility with the v7 ed has been fixed. Previously,
498 to do a global substitute with an escaped newline in the rhs, you
499 had to put two \'s in ex and one in ed. Ex now accepts the single
500 form as well as the double form. For example, instead of
501 g/foo/s//foo\\
502 bar/g
503 (which still works), you can now type, as in ed,
504 g/foo/s//foo\
505 bar/g
506 This means that the following ex command, which used to "work":
507 g/foo/s//foo bar\
508 .+1,/mumble/d
509 won't work anymore unless you put the trailing / on the substitution.
510 This usage is pretty obscure anyway.
511
512 Several bugs relating to undoing macros have been fixed.
513
514 A bug which caused the command "g/pattern" to print an error
515 message if "pattern" occurred on the last line has been fixed.
516
517 If you reply ":" to "Hit return to continue", you will again be
518 asked "Hit return to continue" after the next command finishes.
519
520 Limits have been raised so that an Ann Arbor terminal can be used,
521 and long tags can now be accomodated.
522
523 The maximum length of a string valued option has been raised from
524 32 to 64, for the benefit of the "tags" option.
525
526 It is now possible to search for an escape or delete using f, F, t,
527 T, ;, and ,. These characters must be quoted with ^V.
528
529 The option "ttytype" is now in correct alphabetical order.
530
531 A bug that caused HP terminals to mess up in insert mode when inserting
532 before a tab which follows 7 or fewer characters at the beginning of a
533 line (such as a tags file) has been fixed.
534
535 It is now possible to include control D in your EXINIT or .exrc.
536
537 A bug which caused the screen to mess up when a glob (such as xx*)
538 doesn't match anything has been fixed.
539
540 The editor now checks for extra junk after a /r.e./ from visual
541 (other than the allowed z command) and beeps if any is found.
542 Previously it was just ignored.
543
544 A bug that caused j and k (up and down) to behave strangely after
545 an insertion has been fixed.
546
547 A bug which causes term to be displayed incorrectly and which
548 caused a crash when changing terminal type when there happened
549 to be several |'s and a long string in genbuf has been fixed.
550 This bug was introduced in ex 2.9.
551
552 The patch for echo lines longer than 80 characters has been
553 repaired to do "Hit return to continue" after such lines and
554 print the entire output.
555
556 A bug that caused a messed up screen after a :sh command from
557 open mode has been fixed.
558
559 A bug which caused a tag request for a nonexistant tag to leave
560 the editor in nomagic mode has been fixed.
561
562 A bug which caused strange behavior if there is no default file
563 name when an autowrite save is attempted has been fixed.
564
565 A bug which caused the cursor to go to the wrong position when
566 ^^D or 0^D is entered from column 2 in autoindent mode on terminals
567 that can backspace has been fixed.
568
569Version 3.2 -- January 4, 1980
570
571 A bug that caused nomagic to be set if an error happened within
572 a tag command has been fixed.
573
574 A bug that caused put commands to beep after a macro containing
575 an error has been fixed.
576
577 The mapinput option has been placed in alphabetical order.
578
579 A bug that caused undo to undo more than one macro invocation
580 on the same line has been fixed.
581
582 On non VM/UNIX systems, the screen size has been increased to
583 allow a 40 X 80 Ann Arbor to be used.
584
585Version 3.2 -- December 28, 1980
586
587 Several limits have been increased for VM/UNIX. Longer lines,
588 more characters of file names, longer regular expressions, etc.
589 Huge files can now be edited directly. Larger terminals (up to
590 66 lines) can be used.
591
592 An internal change has been made for VM/UNIX that causes error
593 messages to be stored directly instead of in a disk file.
594 This should cause faster response to errors.
595
596Version 3.1.1 -- December 13, 1979
597
598 A bug that caused nested macros not to be undoable has been fixed.
599
600 A bug that caused pounding on the escape key on terminals with
601 arrow keys that send escape sequences to cause undo to screw up
602 has been fixed.
603
604 It is now acknowledged that macros cannot contain the put command.
605 This is due to the implementation of put - previously a put inside
606 a macro dumped a copy of the buffer instead of the desired text and
607 left the editor in a very strange state. Now such a put just beeps.
608
609Version 3.1 -- November 1, 1979
610
611 Versions from 3.1 up are too large to fit on pdp-11's.
612 (Special overlay software is expected to be available soon
613 for v7 pdp-11 Unix that will make it fit.) Version 2.9
614 is 3.1 with only the bug fixes and very few of the enhancements.
615 2.9 will fit on a pdp-11. Version 2.10 will come out and may
616 correspond to 3.2. (It turned out to correspond to 3.3)
617
618 For compatibility with ed: 's<newline>' may be used as a
619 command and means '&'. If you set the option "edcompatible"
620 (abbr "ed") the presense or abscence of g and c suffices is
621 remembered and can be toggled by repeating the suffices. The
622 suffix "r" makes the substitution into "~" instead of "&".
623
624 A new command line option -w<n> sets the value of window before
625 starting ex. Hence: 'vi -w5 file' makes a quick change to a file
626 easier at 300 baud.
627
628 Arrow keys on terminals that send more than 1 character now
629 work. Home up keys are supported as are the four directions.
630 Ex no longer looks at the ma= entry in termcap, but uses the
631 ku, kd, kl, kr, and kh entries. (Note that the HP 2621 will
632 turn on function key labels, and even then you have to hold
633 shift down. To avoid turning on the labels, and to give up the
634 function keys, use terminal type 2621nl instead of 2621.)
635
636 A parameterless macro facility is included from visual. Briefly,
637 there are two flavors of macros:
638 a) Put the macro body in a buffer register, say x. Then
639 type @x to invoke it. @ may be followed by another @
640 to repeat the last macro.
641 This allows macros up to 512 chars.
642 b) Use the map command from command mode (typically in the
643 .exrc file) as follows:
644 map lhs rhs
645 where lhs will be mapped to rhs.
646 There are restrictions: lhs's should be 1-keystroke
647 (either 1 char or 1 function key) since they must be
648 entered within 1 second. lhs no longer than 10 chars,
649 rhs no longer than 100. To get " ", "\t", "|", or "\n"
650 into lhs or rhs, escape them with ctrl V. (It may be
651 necessary to escape the ctrl V with ctrl V if the map
652 command is given from visual mode.)
653 For 1 shot macros it is best to put the macro in a buffer register
654 and map a key to '@r', since this will allow the macro to be edited.
655
656 Macros can be deleted with
657 unmap lhs
658
659 The boolean option "mapinput" (mi) will, if on, cause macros to
660 be mapped in input mode as well as command mode (in visual only).
661 For example, you can define ctrl T to be four spaces with
662 :map ^V^T_^V^V____
663 :set mi
664 where underlines represent spaces and the ctrl V's are necessary
665 to get ctrl chars and spaces past various levels, and make ^T be
666 a software tab that even works in the middle of a line.
667
668 If the lhs of a macro is "#0" through "#9", this maps the particular
669 function key instead of the 2 char # sequence, if the terminal has
670 function keys. This only works if termcap has function key entries
671 for the particular terminal. For terminals without function keys,
672 the sequence #x means function key x, as typed. As a special case,
673 on terminals without function keys, the #x sequence need not be
674 typed within one second. The character # can be changed by using
675 a macro in the usual way:
676 map ^V^I #
677 to use tab, for example. (This won't affect the map command, which
678 still uses #, but just the invocation from visual mode.)
679 The undo command will undo an entire macro call as a unit.
680
681 New commands in visual: ^Y and ^E. These glitch the screen up
682 and down 1 line, respectively. They can be given counts, controlling
683 the number of lines the screen is glitched. They differ from ^U
684 and ^D in that the cursor stays over the same line in the buffer
685 it was over before rather than staying in the same place on the
686 screen. (^Y on a dumb terminal with a full screen will redraw the
687 screen moving the cursor up a few lines.) If you're looking for
688 mnemonic value in the names, try this: Y is right next to U and
689 E is right next to D.
690
691 More new commands in visual: '&' is a synonym for ':&<cr>'.
692 '~' changes the case of the letter under the cursor and moves
693 to the next character.
694
695 Ex looks in your environment for EXINIT. If it finds it, that
696 is used instead of looking for your .exrc. This should make
697 entry into ex faster, along with the termlib feature of looking
698 for a termcap entry in TERMCAP.
699
700Version 2.13 -- September 23, 1980
701
702 The provisions for changing the window size with a numeric
703 prefix argument to certain visual commands have been deleted.
704 The correct way to change the window size is to use the z
705 command, for example z5<cr> to change the window to 5 lines.
706
707 An undocumented "feature" which caused the ^^ command to return
708 to the previous tag, if in the current file, instead of the
709 previous file, has been removed.
710
711Version 2.12 -- July 23, 1980
712
713 A change was made to the sys_errlist array in ex_subr.c so that
714 Berkeley V7 quotas will produce the right error message.
715
716 A couple of minor bug fixes were made to get the editor to
717 compile on version 6. The option to use 1K BUFSIZ has been
718 deleted, since it is no longer used on our 1K system.
719
720Version 2.11 -- June 24, 1980
721
722 The visual page motion commands ^F and ^B now treat any preceding
723 counts as number of pages to move, instead of changes to the
724 window size. That is, 2^F moves forward 2 pages.
725
726 A :vi <file> command from visual mode is now treated the same
727 as a :edit <file> or :ex <file> command. The meaning of the
728 vi command from ex command mode is not affected.
729
730 A read only mode now lets you guarantee you won't clobber your
731 file by accident. You can set the on/off option "readonly" (ro)
732 and writes will fail unless you use an ! after the write.
733 Commands such as x, ZZ, and autowrite, and in general anything
734 that writes is affected. This option is turned on if you invoke
735 ex with the -R flag. A new link called "view" has been created.
736 View is just like vi but it sets readonly.
737
738 The editor now supports certain terminals that use strings other
739 then \r and \n for return and linefeed by implementing the cr
740 and nl termcap options. (Thanks to UCLA for these enhancements).
741
742 The termcap attribute ns is now checked for, and ex refuses to
743 go into visual mode on such a terminal unless it has sf.
744
745 If you change your start and stop characters to something other
746 than the default ^S and ^Q, vi now turns them off. This causes
747 people who change them to escape not to lose so badly.
748 The quit character is once again turned off so that datamedias
749 which send ^\ for the right arrow key work.
750
751 If you type in an unmatched ) or } in showmatch mode, the editor
752 will now beep to warn you about your mistake. The ) or } is
753 still accepted.
754
755 Editor scripts can now contain comments. Begin the comments with "
756 (double quote). Comments can be on their own line or come at the
757 end of command lines. The comment continues to the end of the line.
758
759 The 3rd version of the USG tty driver is now supported, making it
760 possible on USG systems to interrupt redrawing the screen and to
761 not flush output when interruptable commands take place.
762
763 The rewind command has been added to the list of commands that
764 the autowrite option knows about.
765
766 A bug on the USG system where hanging up the phone causes more
767 than one SIGHUP to be sent has been compensated for.
768
769 A bug which caused a file that bombed out in the middle of
770 an edit command to be considered modified has been fixed.
771
772 The source file ex_io.c has been split into ex_io.c and
773 ex_unix.c to avoid a problem where many C compilers overflowed
774 the symbol table.
775
776 A bug which prevented turning off your prompt in your .exrc
777 has been fixed.
778
779 Some of the code internal to the editor has been rearranged
780 and some comments added.
781
782 The bug fix to the USG tty driver to output a null character
783 as padding at 1200 baud has been improved to output a DEL
784 at 1200 baud or above.
785
786 Terminals with small screens (less than 20 columns or less
787 than 5 lines) should now work.
788
789 A bug which prevented you from entering the character DEL
790 into the buffer if you changed your interrupt character to
791 something else besides DEL has been fixed.
792
793 A bug which caused things like d) and d} to miss the last
794 character when they should have deleted to the end of the
795 buffer has been fixed.
796
797 A bug which caused the last character to be lost when you
798 read in a file with no newline at the end of the last line
799 has been fixed.
800
801 A bug that caused garbage to be in the buffer if the temp file
802 overflowed has been fixed.
803
804 The character | can now be escaped with \| in file names.
805
806 A bug which caused the editor to not work if the tab stop size
807 did not divide the screen width has been fixed.
808
809 A bug on HP terminals that caused the screen to be messed up if
810 you scrolled up something that began the same way as the echo line
811 has been fixed.
812
813 An old ed bug which caused globals to fail when they did a substitute
814 on the next line has been fixed.
815
816 The % operator will now find matching square brackets the same way
817 it does parentheses and braces. It will not display them in
818 showmatch mode, however, and will not use a ] to match all ('s.
819
820 Ex looks in your environment for EXINIT. If it finds it, that
821 is used instead of looking for your .exrc. This should make
822 entry into ex faster, along with the termlib feature of looking
823 for a termcap entry in TERMCAP.
824
825 Internally, it is possible to turn off about a dozen different
826 options when compiling the editor to make it fit in 64K.
827 See the makefile for a list of options.
828
829Version 2.10 -- February 2, 1980 (Corresponds to 3.3)
830
831 The default window sizes have been changed. At 300 baud the
832 window is now 8 lines (was 1/2 the screen size). At 1200 baud
833 the window is now 16 lines (was 2/3 the screen size, which was
834 usually also 16 for a typical 24 line CRT). At 9600 baud the
835 window is still the full screen size. Any baud rate less than
836 1200 behaves like 300, any over 1200 like 9600.
837
838 A new command mode command "x" (for "xit") has been added. This
839 is the same as wq but will not bother to write if there have been
840 no changes to the file. The command letter was chosen for
841 convenience and compatibilty with hed.
842
843 The command "ZZ" from vi is the same as ":x<cr>". This is
844 the recommended way to leave the editor. Z must be typed twice
845 since this is two easy to type by accident and has such severe
846 effects if unintentional.
847
848 The options w300, w1200, and w9600 can be set. They are synonyms
849 for "window", but only apply at 300, 1200, or 9600 baud, resp.
850 Thus you can specify you want a 12 line window at 300 baud and
851 a 23 line window at 1200 baud with
852 :set w300=12 w1200=23
853
854 The "q" command from visual no longer works at all. You must
855 use "Q" to get to ex command mode.
856
857 The editor no longer uses nondestructive space, except when in
858 insert mode. It instead prints the character it would be
859 moving over. This is a real win on terminals that use an
860 escape sequence to nd space.
861
862 A minor incompatibility with the v7 ed has been fixed. Previously,
863 to do a global substitute with an escaped newline in the rhs, you
864 had to put two \'s in ex and one in ed. Ex now accepts the single
865 form as well as the double form. For example, instead of
866 g/foo/s//foo\\
867 bar/g
868 (which still works), you can now type, as in ed,
869 g/foo/s//foo\
870 bar/g
871 This means that the following ex command, which used to "work":
872 g/foo/s//foo bar\
873 .+1,/mumble/d
874 won't work anymore unless you put the trailing / on the substitution.
875 This usage is pretty obscure anyway.
876
877 A bug which caused the command "g/pattern" to print an error
878 message if "pattern" occurred on the last line has been fixed.
879
880 Limits have been raised so that an Ann Arbor terminal can be used,
881 and long tags can now be accomodated.
882
883 A bug that caused HP terminals to mess up in insert mode when inserting
884 before a tab which follows 7 or fewer characters at the beginning of a
885 line (such as a tags file) has been fixed.
886
887 A bug which causes term to be displayed incorrectly and which
888 caused a crash when changing terminal type when there happened
889 to be several |'s and a long string in genbuf has been fixed.
890 This bug was introduced in ex 2.9.
891
892 The patch for echo lines longer than 80 characters has been
893 repaired to do "Hit return to continue" after such lines and
894 print the entire output.
895
896 A bug that caused a messed up screen after a :sh command from
897 open mode has been fixed.
898
899 A bug which caused a tag request for a nonexistant tag to leave
900 the editor in nomagic mode has been fixed.
901
902 A bug which caused strange behavior if there is no default file
903 name when an autowrite save is attempted has been fixed.
904
905 A bug which caused the cursor to go to the wrong position when
906 ^^D or 0^D is entered from column 2 in autoindent mode on terminals
907 that can backspace has been fixed.
908
909 In order to get 2.10 to fit on a v7 pdp-11, the following features
910 have been deleted:
911 The MASTERTAGS feature (undocumented use of /usr/lib/tags
912 as an alternate tag file)
913 Checking that a file being read in is an ascii file.
914 Turning off ^Q/^S on a v7 system.
915
916Version 2.9 -- November 1, 1979
917
918 The meanings of semicolon and newline, broken in 2.8, have been fixed.
919 Newline with two arguments still prints the range, unless a semicolon
920 was present, in which case only the last line is printed. Semicolon
921 otherwise behaves as in ed (and ex 2.7).
922
923 For compatibility with ed: '%' is an abbreviation for '1,$'.
924 The default starting line for 'z' is '.+1' instead of '.'.
925 If 'z' is followed by a number, this number is remembered
926 (by setting the scroll option).
927
928 The + options to the command line invocation and to the edit
929 command now also work for the next command. In addition, the
930 text after the + is no longer limited to a line number or
931 / or ? search string, but can be any single command. (It cannot
932 contain spaces except on command line invocation, and then must
933 be quoted to make the shell happy.) The only special case is
934 where + is used by itself - this is the same as +$.
935
936 The way window sizes and scrolling commands are based on the options
937 window and scroll has been rearranged. All command mode scrolling
938 commands (z and ctrl D) are based on scroll: ^D moves scroll lines,
939 z moves scroll*2 lines. Everything in visual (^D, ^U, ^F, ^B, z,
940 window sizes in general) are based on the window option. The
941 defaults are arranged so that everything seems as before, but
942 on hardcopy terminals at 300 baud the default for scroll is
943 11 instead of 6.
944
945 Whether ex prompts for commands now depends on the setting of the
946 prompt variable, so inside script you can say 'set prompt' and
947 get ex to prompt.
948
949 Tags are now searched for in nomagic mode instead of the funny
950 mode where magic characters were impossible to get.
951
952 Paragraphs and sections with one letter names (such as those
953 used by PWB/MM) now work - use a space (escaped by a backslash)
954 for the second letter. Default paragraphs and sections are included
955 for both MM and MS. (Thanks to adb for this)
956
957 A bug involving 16 bit arithmetic on a vax for the yank command
958 has been fixed.
959
960 The text of the mailed message from expreserve has been improved
961 slightly.
962
963 The editor now always turns off the XTABS stty bit when in visual
964 mode, making terminals that do special things with ^I work.
965
966 The editor now knows about terminals with destructive tabs, like
967 the teleray 1061, having the xt option.
968
969 A bug that caused going past column 80 on terminals with insert line
970 but not insert char (like the mime, h1500, or i100) to mess up the
971 screen has been fixed.
972
973 A bug on 2621's that causes lines longer than 80 chars long with
974 embedded tabs to mess up when a tab was inserted has been fixed.
975
976 A bug that caused the wrong line to suddenly appear under very
977 rare circumstances involving small window sizes and long lines
978 where a search left the cursor on the top line of the screen
979 has been fixed.
980
981 The bug that caused inverse video to sometimes be scrolled up
982 into the file from an error message has been fixed.
983
984 The join command has been fixed, so that '3,3j' no longer joins
985 lines 3 and 4. ('3j' still does.) Thus, '/a/;/b/-j' works right
986 even if b is found on the line after a.
987
988 ex -v now finds your .exrc. In related changes, the default in
989 vi is now magic and nobeautify.
990
991 If your buffer is empty, ex won't refuse to do an edit, quit,
992 or tag command because you haven't done a write.
993
994 A bug causing visual undo not to work after '1,$!cat' has been
995 fixed.
996
997 Ex now decides for itself whether to use CBREAK or TIOCSETN
998 by whether they are defined in <sgtty.h>. This eliminates much
999 of the #ifdef USG or V6 lines. One USG line remains due to a bug
1000 in the USG tty driver at 1200 baud.
1001 Note that this will mess up if you use libretro because <sgtty.h>
1002 has CBREAK and TIOCSETN defined. Take these out of sgtty.h to fix this.
1003
1004 Termcap options TI and TE have been added. These strings are
1005 respectively output at the beginning and end of the editing session.
1006
1007 Values for the set command may now include `\ ' for space and
1008 control characters.
1009
1010 Changes have been made to /etc/termcap (several new fields have
1011 been added) and to termlib (it now looks for TERMCAP in the environment
1012 and treats it as a termcap entry if the name of the terminal mentioned
1013 is the same as TERM and the entry doesn't start with a slash.
1014 If it starts with a slash it is treated as a filename, as before.
1015 Termcap also checks the 512 byte entry limit and skips lines beginning
1016 with # as comments. It is possible to define one terminal as being
1017 similar to another one with a few differences without making two
1018 copies of the description.) New termcap fields:
1019 ti terminal initialization string. This should be sent
1020 out at the beginning of any program that addresses
1021 the cursor.
1022 te Like te but at end of the program.
1023 (Thanks to adb for these two fields)
1024 us Start underlining.
1025 ue End underlining.
1026 uc Underline one character & move over it.
1027 hc (bool) terminal is hardcopy
1028 ns (bool) terminal doesn't scroll (tektronix)
1029 ff (bool) hardcopy knows ^L means formfeed.
1030 pt (bool) hardware tabs, maybe set by is
1031 xt (bool) destructive tabs (teleray 1061)
1032 ku sequence sent by keypad "up" arrow
1033 kd "down" arrow
1034 kl "left" arrow
1035 kr "right" arrow
1036 kh "home" arrow
1037 ks sequence to make keypad send these codes
1038 ke sequence to make keypad not send these codes.
1039 k0-k9 sequences sent by up to 10 "other" keys
1040 l0-l9 labels on k0-k9. If omitted, default = "f0" - "f9".
1041 ko additional keys on keypad, in terms of their
1042 termcap entry. For example, if "home down" and "clear"
1043 are present and send the same codes as ll and cl, use
1044 :ko=cl,ll:
1045 tc This entry is a list of differences from the named
1046 entry. THIS MUST BE THE LAST FIELD. Example: hp2621
1047 with no ks or ke (e.g. null string):
1048 hn|hp2621nl:ks@:ke@:tc=hp2621:
1049 The @ cancels the string even if it is defined later.
1050
1051Version 2.8 -- July 18, 1979
1052
1053 It is now possible to backspace over the first character (:, /, or ?)
1054 on the echo line from visual. The effect is as though delete were hit
1055 except the bell isn't rung.
1056
1057 The trailing slash in global commands is now optional.
1058 g/pat means g/pat/p
1059 (This change, as well as the corresponding changes to the substitute
1060 command and r.e. address are also in the latest version of ed.)
1061
1062 The j, k, and l keys now move the cursor down, up, and right,
1063 respectively, in visual mode, as they used to do (and still do on
1064 3a's). This is to avoid the creeping of these keys into the map
1065 descriptions of terminals and to compensate for the lack of arrow
1066 keys on terminals like HP's.
1067
1068 Two arguments given to a newline command now print the range of
1069 lines instead of just the last line (as though 'p' were appended).
1070 To make forms like /foo/;/bar/ still work, the ; operator sets
1071 the dot as before but then forgets everything to the left of the ;.
1072
1073 The + option invoked from the shell or the edit command has
1074 two new forms: +/pat and +?pat
1075 These cause the initial line to be chosen by a search for the
1076 pattern pat. Note that if any special characters are in the
1077 argument (such as ^, $, and even ?) it must be quoted.
1078
1079 Two new options are added: autowrite (aw) and hardtabs (ht).
1080 Autowrite is a toggle, off by default. When on, if you have
1081 unsaved changes before a context switching command, a write
1082 is done automatically. The commands that may write are !,
1083 next, and tag. Note that there is an equivalent way to do the
1084 command with autowrite set without the write in each case:
1085 shell, tag!, and edit do not write.
1086
1087 Hardtabs is a numeric option,, set to 8 by default.
1088 Changing this to, say, 4, tells ex that either your system
1089 expands tabs to every 4 spaces, or your terminal has hardware
1090 tabs set every 4 spaces.
1091
1092 A bug that caused strange behaviour when an echo line contained
1093 more than 79 characters (from a long : command or one or more long
1094 filenames) has been patched by not printing any such characters
1095 past column 79.
1096
1097 Handling of systems with nonstandard locations of files (where
1098 the maintainer of ex is not a superuser and cannot create files
1099 with names like /usr/lib/ex2.0strings or /etc/termcap) has been
1100 improved. If the file can't be found as is, it is tried in the
1101 current directory. If that fails, ex tries to run without it.
1102 (Previously it bombed immediately if the error message file wasn't
1103 in /usr/lib.)
1104
1105 Shell commands containing ! or % characters are no longer echoed
1106 when in hush mode (as in 'ex -' from a shell file.)
1107
1108Version 2.7 -- June 10, 1979
1109
1110 An inefficiency introduced in version 2.3, which increased the
1111 amount of time spent preparing output by approximately 30 percent
1112 has been corrected.
1113
1114 A bug which caused ``wrapmargin'' to work as though all hardcopy
1115 terminals were 160 columns wide has been corrected.
1116
1117 A bug which caused the display to become confused after the display
1118 of a long line at the bottom of the screen was suppressed (being
1119 replaced temporarily by an @) has been fixed. Previously, under
1120 some circumstances (e.g. after a put created the situation), scrolling
1121 up of the following text would cause the display of this long
1122 line to be skipped, so that the @ line would remain and the line
1123 itself would not be displayed.
1124
1125Version 2.6 -- June 2, 1979
1126
1127 A bug which prevented the first field separator in a tags file
1128 from beginning with a blank has been fixed; if the separator
1129 was a blank previously, the tag would not be found in the tags file.
1130
1131 A bug which caused the display to be messed up after a ``:''
1132 escape which created long lines has been fixed. Previously
1133 a substitute command which changed the last few lines on the screen
1134 to be very long would leave the screen messed up.
1135
1136 A bug in display after 2 successive ``undo'' commands has been fixed.
1137 Previously if you opened new lines on the display, and then did
1138 2 successive undo commands, the display would be messed up after the
1139 second undo if your terminal had insert/delete line.
1140
1141 A bug on intelligent terminals which caused unnecessary delete
1142 character commands to be sent has been fixed. This occurred when
1143 you did not have ``autoindent'' set, and opened a new line
1144 below an existing line with tabs.
1145
1146 The change operations in open mode on hardcopy terminals has been
1147 fixed. Previously there were several bugs in cursor placement
1148 when the change extended to just before a tab character.
1149
1150 Several bugs in the handling of tabs in insert mode on intelligent
1151 terminals have been fixed. Previously, tabs would often expand
1152 incorrectly, leaving the wrong amount of white space, when an
1153 insert occurred just before a tab.
1154
1155 A bug has been fixed which caused the editor to skip processing
1156 of the ``.exrc'' file when the terminal type set in the
1157 environment was unknown. The editor now processes ``.exrc'' in
1158 this case.
1159
1160 [[A number of formatting changes have been made to the editor code
1161 to eliminate unreasonably long lines. In addition, the code
1162 from the Murray Hill and USG sites has been merged in conditionally,
1163 so that all sites can compile from the same source.]]
1164
1165Version 2.5 -- May 28, 1979
1166
1167 A bug which caused the VE sequence not to be sent when exiting
1168 the editor via :q or :wq from visual has been fixed.
1169
1170 A bug which caused the command r^Q<ESC> to be weird when it
1171 was repeated has been fixed.
1172
1173 The $ command now sets the column for future cursor motions to
1174 effective infinity. Thus a `$' followed by up/down cursor motions
1175 moves at the right margin of each line.
1176
1177 [[Internal: a bug in conditional compilation without the LISP
1178 features has been fixed.]]
1179
1180 Several bugs relating to insert mode and intelligent terminals
1181 have been fixed:
1182
1183 A bug which caused inserts on HP/DATAMEDIA like terminals to act
1184 strangely when the material was inserted immediately before a tab
1185 has been fixed.
1186
1187 A bug which caused the insertion of full tabs to not appear to
1188 insert as many spaces as required (under strange circumstances)
1189 has been fixed.
1190
1191 A bug which caused inserts on terminals with insert/delete line
1192 but no insert/delete character to act strangely if the insert
1193 caused a line to overflow has been fixed.
1194
1195 The ``expreserve'' program has been improved; you now will get
1196 mail if a file is saved for you as a result of your phone being
1197 hung up accidentally.
1198
1199Version 2.4 -- May 19, 1979
1200
1201 A bug during inserts on intelligent terminals which occasionally
1202 caused double ``~~'' characters on the last few lines of the display
1203 rather than just single `~' characters has been fixed.
1204
1205 The w W b B e and E operations in visual now wrap around line
1206 boundaries. Thus a sequence of enough w commands will get to any
1207 word below the current position in the file, and b's will back
1208 up to any place before. Thus these are more like the sentence
1209 operations ( and ). You still can't back around line boundaries
1210 duing inserts however.
1211
1212Version 2.3 -- May 13, 1979
1213
1214 The P command to ex is now a synonym for p, so that 1,$P works,
1215 if you don't let up on the shift key soon enough.
1216
1217 The / and ? operations within visual and open now hit later
1218 (or earlier resp) occurrences of the same string on the same
1219 line. This makes scans using / and ? much more useful. You
1220 can move to the right on the current line by typing /pref<ESC>
1221 where `pref' is a prefix of the word you wish to move to, and
1222 delete to a following string `str' by doing d/str<ESC> if it is
1223 on the same or succeeding line. Previously the command
1224 d/pat/
1225 deleted lines through the next line containing `pat'; it now
1226 deletes text up to the next instance of `pat'. To delete to
1227 the next line containing `pat', do
1228 d/pat/0
1229 which is short for
1230 d/pat/+0
1231 In general if you use an offset after the scanning pattern,
1232 whole lines will always be affected.
1233
1234 Several bugs relating to the setting of the previous context mark
1235 `` have been fixed, including one which caused operations such as
1236 d`` or c`` to occasionally dump core. In particular, the operations
1237 ( ) { } [[ ]] and %
1238 now set the previous context mark correctly, and the mark is set
1239 even if the motion by these operations lands in the same line.
1240
1241 More optimization is now done on output cursor motions. This
1242 is particularly much better on HP terminals which have
1243 ridiculously long cursor addressing sequences. A new
1244 capability has been added to the termcap file to aid this:
1245 ``bt'' (backtab). Thanks to Chuck Haley for the new code to
1246 implement this.
1247
1248 A bug has been fixed on intelligent terminals which caused part
1249 of the screen to be accidentally erased during insertions.
1250 This occurred only on the first line on the screen, when it
1251 became longer than one displayed line and only if a part of
1252 the screen (at the top) was currently not in use.
1253
1254 A bug has been fixed which caused the command ``dp'' to be interpreted
1255 as ``delete to register p''. This normally went unnoticed since
1256 the ``autoprint'' option would cause the effect which the ``p'' was
1257 forcing.
1258
1259Version 2.2 -- May 6, 1979
1260
1261 "d)" now deletes a line if the current line is a sentence rather
1262 than leaving an empty line.
1263
1264 The command
1265 :s/str
1266 now deletes str if it can find it; previously it was an error.
1267
1268 The editor now handles multiple ":" escapes correctly; previously
1269 the screen would not be redrawn necessitating a ^L to fix it if you
1270 gave a `:!command' to ``[Hit return to continue]''.
1271
1272 Recursive calls to visual from within open or visual are no longer
1273 permitted. Previously ``:vi'' from within open mode would eventually
1274 leave the editor in a strange state.
1275
1276 The %age in the status line is now correctly printed on 11's;
1277 Previously internal 16-bit overflows often caused it to be incorrect.
1278
1279 The editor now ignores a ":" in front of commands.
1280 Thus you can say ``:read foo'' within ex.
1281
1282 A bug which caused commands involving ]] to not be repeatable has
1283 been fixed. Previously ``d]]'' followed by ``.'' caused an error.
1284
1285 "ayw now works correctly. Previously this silently did nothing.
1286
1287 Several bugs in "recover" and "ex -r" have been fixed. Thanks
1288 to Andy Koenig for the fixes.
1289
1290 In input mode in open and visual ^V (like tenex) is now equivalent
1291 to ^Q (which is reminiscent of ITS) superquoting the next character.
1292 A later version of the UNIX tty driver will implement the standard for
1293 ^S ^Q handshaking and make ^Q unusable.
1294
1295 There are several typos on page 3 of the ``edit'' manual section:
1296 s/move "a/delete a/
1297 s/"a move ./put a/
1298 /move to copy/s//delete to yank/
1299
1300Version 2.1 -- April 5, 1979
1301
1302 Invoking ex via
1303 ex -l
1304 now sets "lisp" and "showmatch". This is suitable for invocations
1305 from within Franz Lisp. If you don't like "showmatch", you can
1306 still use "ex -l", just put the command
1307 set noshowmatch
1308 in your .exrc file.
1309