|
|
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.