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