Annotation of researchv10no/cmd/ex/ex.news, revision 1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.