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