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