|
|
1.1 root 1: This is version 3 of the editor. It is too large to fit on a pdp-11
2: unless you have overlay code. (Such code is available for v7 unix on 2bsd.)
3:
4: Version 2.13 corresponds to version 3 without the enhancements in 3.
5: There is no reason to use 2.13 unless you have a pdp-11 that does not have
6: overlay software, since 3 contains all the bug fixes and some new features.
7:
8: Special installation notes for this version.
9: 2) The include file varargs.h should be installed, as the printf here needs it.
10: 3) 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:
14: Conditional 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]
23:
24: =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
25:
26: Version 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:
76: Version 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:
177: Version 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:
205: Version 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:
407: Version 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:
569: Version 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:
585: Version 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:
596: Version 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:
609: Version 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:
700: Version 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:
711: Version 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:
720: Version 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:
829: Version 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:
916: Version 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:
1051: Version 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:
1108: Version 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:
1125: Version 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:
1165: Version 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:
1199: Version 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:
1212: Version 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:
1259: Version 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:
1300: Version 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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.