Annotation of 43BSDReno/share/doc/usd/16.ex/ex.rm, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1980 Regents of the University of California.
                      2: .\" All rights reserved.  The Berkeley software License Agreement
                      3: .\" specifies the terms and conditions for redistribution.
                      4: .\"
                      5: .\"    @(#)ex.rm       6.1 (Berkeley) 5/30/86
                      6: .\"
                      7: .EH 'USD:16-%''Ex Reference Manual'
                      8: .OH 'Ex Reference Manual''USD:16-%'
                      9: .de ZP
                     10: .nr pd \\n()P
                     11: .nr )P 0
                     12: .if \\n(.$=0 .IP
                     13: .if \\n(.$=1 .IP "\\$1"
                     14: .if \\n(.$>=2 .IP "\\$1" "\\$2"
                     15: .nr )P \\n(pd
                     16: .rm pd
                     17: ..
                     18: .de LC
                     19: .br
                     20: .sp .1i
                     21: .ne 4
                     22: .LP
                     23: .ta 4.0i
                     24: ..
                     25: .bd S B 3
                     26: .\".RP
                     27: .TL
                     28: Ex Reference Manual
                     29: .br
                     30: Version 3.7
                     31: .AU
                     32: William Joy
                     33: .AU
                     34: Mark Horton
                     35: .AI
                     36: Computer Science Division
                     37: Department of Electrical Engineering and Computer Science
                     38: University of California, Berkeley
                     39: Berkeley, Ca.  94720
                     40: .AB
                     41: .I Ex
                     42: a line oriented text editor, which supports both command and display
                     43: oriented editing.
                     44: This reference manual describes the command oriented part of
                     45: .I ex;
                     46: the display editing features of
                     47: .I ex
                     48: are described in
                     49: .I "An Introduction to Display Editing with Vi."
                     50: Other documents about the editor include the introduction
                     51: .I "Edit: A tutorial",
                     52: the
                     53: .I "Ex/edit Command Summary",
                     54: and a
                     55: .I "Vi Quick Reference"
                     56: card.
                     57: .AE
                     58: .NH 1
                     59: Starting ex
                     60: .PP
                     61: .FS
                     62: The financial support of an \s-2IBM\s0 Graduate Fellowship and the National
                     63: Science Foundation under grants MCS74-07644-A03 and MCS78-07291 is gratefully
                     64: acknowledged.
                     65: .FE
                     66: Each instance of the editor has a set of options,
                     67: which can be set to tailor it to your liking.
                     68: The command
                     69: .I edit
                     70: invokes a version of
                     71: .I ex
                     72: designed for more casual or beginning
                     73: users by changing the default settings of some of these options.
                     74: To simplify the description which follows we
                     75: assume the default settings of the options.
                     76: .PP
                     77: When invoked,
                     78: .I ex
                     79: determines the terminal type from the \s-2TERM\s0 variable in the environment.
                     80: It there is a \s-2TERMCAP\s0 variable in the environment, and the type
                     81: of the terminal described there matches the \s-2TERM\s0 variable,
                     82: then that description
                     83: is used.  Also if the \s-2TERMCAP\s0 variable contains a pathname (beginning
                     84: with a \fB/\fR) then the editor will seek the description of the terminal
                     85: in that file (rather than the default /etc/termcap).
                     86: If there is a variable \s-2EXINIT\s0 in the environment, then the editor
                     87: will execute the commands in that variable,
                     88: otherwise if there is a file
                     89: .I \&.exrc
                     90: in your \s-2HOME\s0 directory
                     91: .I ex
                     92: reads commands from that file, simulating a
                     93: .I source
                     94: command.
                     95: Option setting commands placed in
                     96: \s-2EXINIT\s0 or
                     97: .I \&.exrc
                     98: will be executed before each editor session.
                     99: .PP
                    100: A command to enter
                    101: .I ex
                    102: has the following prototype:\(dg
                    103: .FS
                    104: \(dg Brackets `[' `]' surround optional parameters here.
                    105: .FE
                    106: .DS
                    107: \fBex\fP [ \fB\-\fP ] [ \fB\-v\fP ] [ \fB\-t\fP \fItag\fP ] [ \fB\-r\fP ] [ \fB\-l\fP ] [ \fB\-w\fP\fIn\fP ] [ \fB\-x\fP ] [ \fB\-R\fP ] [ \fB+\fP\fIcommand\fP ] name ...
                    108: .DE
                    109: The most common case edits a single file with no options, i.e.:
                    110: .DS
                    111: \fBex\fR name
                    112: .DE
                    113: The
                    114: .B \-
                    115: command line option
                    116: option suppresses all interactive-user feedback
                    117: and is useful in processing editor scripts in command files.
                    118: The
                    119: .B \-v
                    120: option is equivalent to using
                    121: .I vi
                    122: rather than
                    123: .I ex.
                    124: The
                    125: .B \-t
                    126: option is equivalent to an initial
                    127: .I tag
                    128: command, editing the file containing the
                    129: .I tag
                    130: and positioning the editor at its definition.
                    131: The
                    132: .B \-r
                    133: option is used in recovering after an editor or system crash,
                    134: retrieving the last saved version of the named file or,
                    135: if no file is specified,
                    136: typing a list of saved files.
                    137: The
                    138: .B \-l
                    139: option sets up for editing \s-2LISP\s0, setting the
                    140: .I showmatch
                    141: and
                    142: .I lisp
                    143: options.
                    144: The
                    145: .B \-w
                    146: option sets the default window size to
                    147: .I n,
                    148: and is useful on dialups to start in small windows.
                    149: The
                    150: .B \-x
                    151: option causes
                    152: .I ex
                    153: to prompt for a
                    154: .I key ,
                    155: which is used to encrypt and decrypt the contents of the file,
                    156: which should already be encrypted using the same key,
                    157: see
                    158: .I crypt (1).
                    159: The
                    160: .B \-R
                    161: option sets the
                    162: .I readonly
                    163: option at the start.
                    164: .I Name
                    165: arguments indicate files to be edited.
                    166: An argument of the form
                    167: \fB+\fIcommand\fR
                    168: indicates that the editor should begin by executing the specified command.
                    169: If
                    170: .I command
                    171: is omitted, then it defaults to ``$'', positioning the editor at the last
                    172: line of the first file initially.  Other useful commands here are scanning
                    173: patterns of the form ``/pat'' or line numbers, e.g. ``+100'' starting
                    174: at line 100.
                    175: .NH 1
                    176: File manipulation
                    177: .NH 2
                    178: Current file
                    179: .PP
                    180: .I Ex
                    181: is normally editing the contents of a single file,
                    182: whose name is recorded in the
                    183: .I current
                    184: file name.
                    185: .I Ex
                    186: performs all editing actions in a buffer
                    187: (actually a temporary file)
                    188: into which the text of the file is initially read.
                    189: Changes made to the buffer have no effect on the file being
                    190: edited unless and until the buffer contents are written out to the
                    191: file with a
                    192: .I write
                    193: command.
                    194: After the buffer contents are written,
                    195: the previous contents of the written file are no longer accessible.
                    196: When a file is edited,
                    197: its name becomes the current file name,
                    198: and its contents are read into the buffer.
                    199: .PP
                    200: The current file is almost always considered to be
                    201: .I edited.
                    202: This means that the contents of the buffer are logically
                    203: connected with the current file name,
                    204: so that writing the current buffer contents onto that file,
                    205: even if it exists,
                    206: is a reasonable action.
                    207: If the current file is not 
                    208: .I edited
                    209: then
                    210: .I ex
                    211: will not normally write on it if it already exists.*
                    212: .FS
                    213: * The
                    214: .I file
                    215: command will say ``[Not edited]'' if the current file is not considered
                    216: edited.
                    217: .FE
                    218: .NH 2
                    219: Alternate file
                    220: .PP
                    221: Each time a new value is given to the current file name,
                    222: the previous current file name is saved as the
                    223: .I alternate
                    224: file name.
                    225: Similarly if a file is mentioned but does not become the current file,
                    226: it is saved as the alternate file name.
                    227: .NH 2
                    228: Filename expansion
                    229: .PP
                    230: Filenames within the editor may be specified using the normal
                    231: shell expansion conventions.
                    232: In addition,
                    233: the character `%' in filenames is replaced by the
                    234: .I current
                    235: file name and the character
                    236: `#' by the
                    237: .I alternate
                    238: file name.\(dg
                    239: .FS
                    240: \(dg This makes it easy to deal alternately with
                    241: two files and eliminates the need for retyping the
                    242: name supplied on an
                    243: .I edit
                    244: command after a 
                    245: .I "No write since last change"
                    246: diagnostic is received.
                    247: .FE
                    248: .NH 2
                    249: Multiple files and named buffers
                    250: .PP
                    251: If more than one file is given on the command line,
                    252: then the first file is edited as described above.
                    253: The remaining arguments are placed with the first file in the
                    254: .I "argument list."
                    255: The current argument list may be displayed with the
                    256: .I args
                    257: command.
                    258: The next file in the argument list may be edited with the
                    259: .I next
                    260: command.
                    261: The argument list may also be respecified by specifying
                    262: a list of names to the
                    263: .I next
                    264: command.
                    265: These names are expanded,
                    266: the resulting list of names becomes the new argument list,
                    267: and
                    268: .I ex
                    269: edits the first file on the list.
                    270: .PP
                    271: For saving blocks of text while editing, and especially when editing
                    272: more than one file,
                    273: .I ex
                    274: has a group of named buffers.
                    275: These are similar to the normal buffer, except that only a limited number
                    276: of operations are available on them.
                    277: The buffers have names
                    278: .I a
                    279: through
                    280: .I z.\(dd
                    281: .FS
                    282: \(dd It is also possible to refer to
                    283: .I A
                    284: through
                    285: .I Z;
                    286: the upper case buffers are the same as the lower but commands
                    287: append to named buffers rather than replacing
                    288: if upper case names are used.
                    289: .FE
                    290: .NH 2
                    291: Read only
                    292: .PP
                    293: It is possible to use
                    294: .I ex
                    295: in
                    296: .I "read only"
                    297: mode to look at files that you have no intention of modifying.
                    298: This mode protects you from accidently overwriting the file.
                    299: Read only mode is on when the
                    300: .I readonly
                    301: option is set.
                    302: It can be turned on with the
                    303: .B \-R
                    304: command line option,
                    305: by the
                    306: .I view
                    307: command line invocation,
                    308: or by setting the
                    309: .I readonly
                    310: option.
                    311: It can be cleared by setting
                    312: .I noreadonly .
                    313: It is possible to write, even while in read only mode, by indicating
                    314: that you really know what you are doing.
                    315: You can write to a different file, or can use the ! form of write,
                    316: even while in read only mode.
                    317: .NH 1
                    318: Exceptional Conditions
                    319: .NH 2
                    320: Errors and interrupts
                    321: .PP
                    322: When errors occur
                    323: .I ex
                    324: (optionally) rings the terminal bell and, in any case, prints an error
                    325: diagnostic.  If the primary input is from a file, editor processing
                    326: will terminate.  If an interrupt signal is received,
                    327: .I ex
                    328: prints ``Interrupt'' and returns to its command level.  If the primary
                    329: input is a file, then
                    330: .I ex
                    331: will exit when this occurs.
                    332: .NH 2
                    333: Recovering from hangups and crashes
                    334: .PP
                    335: If a hangup signal is received and the buffer has been modified since
                    336: it was last written out, or if the system crashes, either the editor
                    337: (in the first case) or the system (after it reboots in the second) will
                    338: attempt to preserve the buffer.  The next time you log in you should be
                    339: able to recover the work you were doing, losing at most a few lines of
                    340: changes from the last point before the hangup or editor crash.  To
                    341: recover a file you can use the
                    342: .B \-r
                    343: option.  If you were editing the file
                    344: .I resume,
                    345: then you should change
                    346: to the directory where you were when the crash occurred, giving the command
                    347: .DS
                    348: \fBex \-r\fP\fI resume\fP
                    349: .DE
                    350: After checking that the retrieved file is indeed ok, you can
                    351: .I write
                    352: it over the previous contents of that file.
                    353: .PP
                    354: You will normally get mail from the system telling you when a file has
                    355: been saved after a crash.  The command
                    356: .DS
                    357: \fBex\fP \-\fBr\fP
                    358: .DE
                    359: will print a list of the files which have been saved for you.
                    360: (In the case of a hangup,
                    361: the file will not appear in the list,
                    362: although it can be recovered.)
                    363: .NH 1
                    364: Editing modes
                    365: .PP
                    366: .I Ex
                    367: has five distinct modes.  The primary mode is
                    368: .I command
                    369: mode.  Commands are entered in command mode when a `:' prompt is
                    370: present, and are executed each time a complete line is sent.  In
                    371: .I "text input"
                    372: mode
                    373: .I ex
                    374: gathers input lines and places them in the file.  The
                    375: .I append,
                    376: .I insert,
                    377: and
                    378: .I change
                    379: commands use text input mode.
                    380: No prompt is printed when you are in text input mode.
                    381: This mode is left by typing a `.' alone at the beginning of a line, and
                    382: .I command
                    383: mode resumes.
                    384: .PP
                    385: The last three modes are
                    386: .I open
                    387: and
                    388: .I visual
                    389: modes, entered by the commands of the same name, and, within open and
                    390: visual modes
                    391: .I "text insertion"
                    392: mode.
                    393: .I Open
                    394: and
                    395: .I visual
                    396: modes allow local editing operations to be performed on the text in the
                    397: file.  The
                    398: .I open
                    399: command displays one line at a time on any terminal while
                    400: .I visual
                    401: works on \s-2CRT\s0 terminals with random positioning cursors, using the
                    402: screen as a (single) window for file editing changes.
                    403: These modes are described (only) in
                    404: .I "An Introduction to Display Editing with Vi."
                    405: .NH 
                    406: Command structure
                    407: .PP
                    408: Most command names are English words,
                    409: and initial prefixes of the words are acceptable abbreviations.
                    410: The ambiguity of abbreviations is resolved in favor of the more commonly
                    411: used commands.*
                    412: .FS
                    413: * As an example, the command 
                    414: .I substitute
                    415: can be abbreviated `s'
                    416: while the shortest available abbreviation for the 
                    417: .I set
                    418: command is `se'.
                    419: .FE
                    420: .NH 2
                    421: Command parameters
                    422: .PP
                    423: Most commands accept prefix addresses specifying the lines in the file
                    424: upon which they are to have effect.
                    425: The forms of these addresses will be discussed below.
                    426: A number of commands also may take a trailing
                    427: .I count
                    428: specifying the number of lines to be involved in the command.\(dg
                    429: .FS
                    430: \(dg Counts are rounded down if necessary.
                    431: .FE
                    432: Thus the command ``10p'' will print the tenth line in the buffer while
                    433: ``delete 5'' will delete five lines from the buffer,
                    434: starting with the current line.
                    435: .PP
                    436: Some commands take other information or parameters,
                    437: this information always being given after the command name.\(dd
                    438: .FS
                    439: \(dd Examples would be option names in a
                    440: .I set
                    441: command i.e. ``set number'',
                    442: a file name in an
                    443: .I edit
                    444: command,
                    445: a regular expression in a
                    446: .I substitute
                    447: command,
                    448: or a target address for a
                    449: .I copy
                    450: command, i.e. ``1,5 copy 25''.
                    451: .FE
                    452: .NH 2
                    453: Command variants
                    454: .PP
                    455: A number of commands have two distinct variants.
                    456: The variant form of the command is invoked by placing an
                    457: `!' immediately after the command name.
                    458: Some of the default variants may be controlled by options;
                    459: in this case, the `!' serves to toggle the default.
                    460: .NH 2
                    461: Flags after commands
                    462: .PP
                    463: The characters `#', `p' and `l' may be placed after many commands.**
                    464: .FS
                    465: **
                    466: A `p' or `l' must be preceded by a blank or tab
                    467: except in the single special case `dp'.
                    468: .FE
                    469: In this case, the command abbreviated by these characters
                    470: is executed after the command completes.
                    471: Since
                    472: .I ex
                    473: normally prints the new current line after each change, `p' is rarely necessary.
                    474: Any number of `+' or `\-' characters may also be given with these flags.
                    475: If they appear, the specified offset is applied to the current line
                    476: value before the printing command is executed.
                    477: .NH 2
                    478: Comments
                    479: .PP
                    480: It is possible to give editor commands which are ignored.
                    481: This is useful when making complex editor scripts
                    482: for which comments are desired.
                    483: The comment character is the double quote: ".
                    484: Any command line beginning with " is ignored.
                    485: Comments beginning with " may also be placed at the ends
                    486: of commands, except in cases where they could be confused as part
                    487: of text (shell escapes and the substitute and map commands).
                    488: .NH 2
                    489: Multiple commands per line
                    490: .PP
                    491: More than one command may be placed on a line by separating each pair
                    492: of commands by a `|' character.
                    493: However the
                    494: .I global
                    495: commands,
                    496: comments,
                    497: and the shell escape `!'
                    498: must be the last command on a line, as they are not terminated by a `|'.
                    499: .NH 2
                    500: Reporting large changes
                    501: .PP
                    502: Most commands which change the contents of the editor buffer give
                    503: feedback if the scope of the change exceeds a threshold given by the
                    504: .I report
                    505: option.
                    506: This feedback helps to detect undesirably large changes so that they may
                    507: be quickly and easily reversed with an
                    508: .I undo.
                    509: After commands with more global effect such as
                    510: .I global
                    511: or
                    512: .I visual,
                    513: you will be informed if the net change in the number of lines
                    514: in the buffer during this command exceeds this threshold.
                    515: .NH 1
                    516: Command addressing
                    517: .NH 2
                    518: Addressing primitives
                    519: .IP \fB.\fR 20
                    520: The current line.
                    521: Most commands leave the current line as the last line which they affect.
                    522: The default address for most commands is the current line,
                    523: thus `\fB.\fR' is rarely used alone as an address.
                    524: .IP \fIn\fR 20
                    525: The \fIn\fRth line in the editor's buffer, lines being numbered
                    526: sequentially from 1.
                    527: .IP \fB$\fR 20
                    528: The last line in the buffer.
                    529: .IP \fB%\fR 20
                    530: An abbreviation for ``1,$'', the entire buffer.
                    531: .IP \fI+n\fR\ \fI\-n\fR 20
                    532: An offset relative to the current buffer line.\(dg
                    533: .FS
                    534: \(dg
                    535: The forms `.+3' `+3' and `+++' are all equivalent;
                    536: if the current line is line 100 they all address line 103.
                    537: .FE
                    538: .IP \fB/\fIpat\fR\fB/\fR\ \fB?\fIpat\fR\fB?\fR 20
                    539: Scan forward and backward respectively for a line containing \fIpat\fR, a
                    540: regular expression (as defined below).  The scans normally wrap around the end
                    541: of the buffer.
                    542: If all that is desired is to print the next line containing \fIpat\fR, then
                    543: the trailing \fB/\fR or \fB?\fR may be omitted.
                    544: If \fIpat\fP is omitted or explicitly empty, then the last
                    545: regular expression specified is located.\(dd
                    546: .FS
                    547: \(dd The forms \fB\e/\fP and \fB\e?\fP scan
                    548: using the last regular expression used in a scan; after a substitute
                    549: \fB//\fP and \fB??\fP would scan using the substitute's regular expression.
                    550: .FE
                    551: .IP \fB\(aa\(aa\fP\ \fB\(aa\fP\fIx\fP 20
                    552: Before each non-relative motion of the current line `\fB.\fP',
                    553: the previous current line is marked with a tag, subsequently referred to as
                    554: `\(aa\(aa'.
                    555: This makes it easy to refer or return to this previous context.
                    556: Marks may also be established by the
                    557: .I mark
                    558: command, using single lower case letters
                    559: .I x
                    560: and the marked lines referred to as
                    561: `\(aa\fIx\fR'.
                    562: .NH 2
                    563: Combining addressing primitives
                    564: .PP
                    565: Addresses to commands consist of a series of addressing primitives,
                    566: separated by `,' or `;'.
                    567: Such address lists are evaluated left-to-right.
                    568: When addresses are separated by `;' the current line `\fB.\fR'
                    569: is set to the value of the previous addressing expression
                    570: before the next address is interpreted.
                    571: If more addresses are given than the command requires,
                    572: then all but the last one or two are ignored.
                    573: If the command takes two addresses, the first addressed line must
                    574: precede the second in the buffer.\(dg
                    575: .FS
                    576: \(dg Null address specifications are permitted in a list of addresses,
                    577: the default in this case is the current line `.';
                    578: thus `,100' is equivalent to `\fB.\fR,100'.
                    579: It is an error to give a prefix address to a command which expects none.
                    580: .FE
                    581: .NH 1
                    582: Command descriptions
                    583: .PP
                    584: The following form is a prototype for all
                    585: .I ex
                    586: commands:
                    587: .DS
                    588: \fIaddress\fR \fBcommand\fR \fI! parameters count flags\fR
                    589: .DE
                    590: All parts are optional; the degenerate case is the empty command which prints
                    591: the next line in the file.  For sanity with use from within
                    592: .I visual
                    593: mode,
                    594: .I ex
                    595: ignores a ``:'' preceding any command.
                    596: .PP
                    597: In the following command descriptions, the
                    598: default addresses are shown in parentheses,
                    599: which are
                    600: .I not,
                    601: however,
                    602: part of the command.
                    603: .LC
                    604: \fBabbreviate\fR \fIword rhs\fP        abbr: \fBab\fP
                    605: .ZP
                    606: Add the named abbreviation to the current list.
                    607: When in input mode in visual, if
                    608: .I word
                    609: is typed as a complete word, it will be changed to
                    610: .I rhs .
                    611: .LC
                    612: ( \fB.\fR ) \fBappend\fR       abbr: \fBa\fR
                    613: .br
                    614: \fItext\fR
                    615: .br
                    616: \&\fB.\fR
                    617: .ZP
                    618: Reads the input text and places it after the specified line.
                    619: After the command, `\fB.\fR'
                    620: addresses the last line input or the
                    621: specified line if no lines were input.
                    622: If address `0' is given,
                    623: text is placed at the beginning of the buffer.
                    624: .LC
                    625: \fBa!\fR
                    626: .br
                    627: \fItext\fR
                    628: .br
                    629: \&\fB.\fR
                    630: .ZP
                    631: The variant flag to
                    632: .I append
                    633: toggles the setting for the
                    634: .I autoindent
                    635: option during the input of
                    636: .I text.
                    637: .LC
                    638: \fBargs\fR
                    639: .ZP
                    640: The members of the argument list are printed, with the current argument
                    641: delimited by `[' and `]'.
                    642: .ig
                    643: .PP
                    644: \fBcd\fR \fIdirectory\fR
                    645: .ZP
                    646: The
                    647: .I cd
                    648: command is a synonym for
                    649: .I chdir.
                    650: ..
                    651: .LC
                    652: ( \fB.\fP , \fB.\fP ) \fBchange\fP \fIcount\fP abbr: \fBc\fP
                    653: .br
                    654: \fItext\fP
                    655: .br
                    656: \&\fB.\fP
                    657: .ZP
                    658: Replaces the specified lines with the input \fItext\fP.
                    659: The current line becomes the last line input;
                    660: if no lines were input it is left as for a
                    661: \fIdelete\fP.
                    662: .LC
                    663: \fBc!\fP
                    664: .br
                    665: \fItext\fP
                    666: .br
                    667: \&\fB.\fP
                    668: .ZP
                    669: The variant toggles
                    670: .I autoindent
                    671: during the
                    672: .I change.
                    673: .ig
                    674: .LC
                    675: \fBchdir\fR \fIdirectory\fR
                    676: .ZP
                    677: The specified \fIdirectory\fR becomes the current directory.
                    678: If no directory is specified, the current value of the
                    679: .I home
                    680: option is used as the target directory.
                    681: After a
                    682: .I chdir
                    683: the current file is not considered to have been
                    684: edited so that write restrictions on pre-existing files apply.
                    685: ..
                    686: .LC
                    687: ( \fB.\fP , \fB.\fP )\|\fBcopy\fP \fIaddr\fP \fIflags\fP       abbr: \fBco\fP
                    688: .ZP
                    689: A
                    690: .I copy
                    691: of the specified lines is placed after
                    692: .I addr,
                    693: which may be `0'.
                    694: The current line
                    695: `\fB.\fR'
                    696: addresses the last line of the copy.
                    697: The command
                    698: .I t
                    699: is a synonym for
                    700: .I copy.
                    701: .LC
                    702: ( \fB.\fR , \fB.\fR )\|\fBdelete\fR \fIbuffer\fR \fIcount\fR \fIflags\fR       abbr: \fBd\fR
                    703: .ZP
                    704: Removes the specified lines from the buffer.
                    705: The line after the last line deleted becomes the current line;
                    706: if the lines deleted were originally at the end,
                    707: the new last line becomes the current line.
                    708: If a named
                    709: .I buffer
                    710: is specified by giving a letter,
                    711: then the specified lines are saved in that buffer,
                    712: or appended to it if an upper case letter is used.
                    713: .LC
                    714: \fBedit\fR \fIfile\fR  abbr: \fBe\fR
                    715: .br
                    716: \fBex\fR \fIfile\fR
                    717: .ZP
                    718: Used to begin an editing session on a new file.
                    719: The editor
                    720: first checks to see if the buffer has been modified since the last
                    721: .I write
                    722: command was issued.
                    723: If it has been,
                    724: a warning is issued and the
                    725: command is aborted.
                    726: The
                    727: command otherwise deletes the entire contents of the editor buffer,
                    728: makes the named file the current file and prints the new filename.
                    729: After insuring that this file is sensible\(dg
                    730: .FS
                    731: \(dg I.e., that it is not a binary file such as a directory,
                    732: a block or character special file other than
                    733: .I /dev/tty,
                    734: a terminal,
                    735: or a binary or executable file
                    736: (as indicated by the first word).
                    737: .FE
                    738: the editor reads the file into its buffer.
                    739: .IP
                    740: If the read of the file completes without error,
                    741: the number of lines and characters read is typed.
                    742: If there were any non-\s-2ASCII\s0 characters
                    743: in the file they are stripped of their non-\s-2ASCII\s0
                    744: high bits,
                    745: and any null characters in the file are discarded.
                    746: If none of these errors occurred, the file is considered
                    747: .I edited.
                    748: If the last line of the input file is missing the trailing
                    749: newline character, it will be supplied and a complaint will be issued.
                    750: This command leaves the current line `\fB.\fR' at the last line read.\(dd
                    751: .FS
                    752: \(dd If executed from within
                    753: .I open
                    754: or
                    755: .I visual,
                    756: the current line is initially the first line of the file.
                    757: .FE
                    758: .LC
                    759: \fBe!\fR \fIfile\fR
                    760: .ZP
                    761: The variant form suppresses the complaint about modifications having
                    762: been made and not written from the editor buffer, thus
                    763: discarding all changes which have been made before editing the new file.
                    764: .LC
                    765: \fBe\fR \fB+\fIn\fR \fIfile\fR
                    766: .ZP
                    767: Causes the editor to begin at line
                    768: .I n
                    769: rather than at the last line;
                    770: \fIn\fR may also be an editor command containing no spaces, e.g.: ``+/pat''.
                    771: .LC
                    772: \fBfile\fR     abbr: \fBf\fR
                    773: .ZP
                    774: Prints the current file name,
                    775: whether it has been `[Modified]' since the last
                    776: .I write 
                    777: command,
                    778: whether it is
                    779: .I "read only" ,
                    780: the current line,
                    781: the number of lines in the buffer,
                    782: and the percentage of the way through the buffer of the current line.*
                    783: .FS
                    784: * In the rare case that the current file is `[Not edited]' this is
                    785: noted also; in this case you have to use the form \fBw!\fR to write to
                    786: the file, since the editor is not sure that a \fBwrite\fR will not
                    787: destroy a file unrelated to the current contents of the buffer.
                    788: .FE
                    789: .LC
                    790: \fBfile\fR \fIfile\fR
                    791: .ZP
                    792: The current file name is changed to
                    793: .I file
                    794: which is considered 
                    795: `[Not edited]'.
                    796: .LC
                    797: ( 1 , $ ) \fBglobal\fR /\fIpat\|\fR/ \fIcmds\fR        abbr: \fBg\fR
                    798: .ZP
                    799: First marks each line among those specified which matches
                    800: the given regular expression.
                    801: Then the given command list is executed with `\fB.\fR' initially
                    802: set to each marked line.
                    803: .IP
                    804: The command list consists of the remaining commands on the current
                    805: input line and may continue to multiple lines by ending all but the
                    806: last such line with a `\e'.
                    807: If
                    808: .I cmds
                    809: (and possibly the trailing \fB/\fR delimiter) is omitted, each line matching
                    810: .I pat
                    811: is printed.
                    812: .I Append,
                    813: .I insert,
                    814: and
                    815: .I change
                    816: commands and associated input are permitted;
                    817: the `\fB.\fR' terminating input may be omitted if it would be on the
                    818: last line of the command list.
                    819: .I Open
                    820: and
                    821: .I visual
                    822: commands are permitted in the command list and take input from the terminal.
                    823: .IP
                    824: The
                    825: .I global
                    826: command itself may not appear in
                    827: .I cmds.
                    828: The
                    829: .I undo
                    830: command is also not permitted there,
                    831: as
                    832: .I undo
                    833: instead can be used to reverse the entire
                    834: .I global
                    835: command.
                    836: The options
                    837: .I autoprint
                    838: and
                    839: .I autoindent
                    840: are inhibited during a
                    841: .I global,
                    842: (and possibly the trailing \fB/\fR delimiter) and the value of the
                    843: .I report
                    844: option is temporarily infinite,
                    845: in deference to a \fIreport\fR for the entire global.
                    846: Finally, the context mark `\'\'' is set to the value of
                    847: `.' before the global command begins and is not changed during a global
                    848: command,
                    849: except perhaps by an
                    850: .I open
                    851: or
                    852: .I visual
                    853: within the
                    854: .I global.
                    855: .LC
                    856: \fBg!\fR \fB/\fIpat\fB/\fR \fIcmds\fR  abbr: \fBv\fR
                    857: .IP
                    858: The variant form of \fIglobal\fR runs \fIcmds\fR at each line not matching
                    859: \fIpat\fR.
                    860: .LC
                    861: ( \fB.\fR )\|\fBinsert\fR      abbr: \fBi\fR
                    862: .br
                    863: \fItext\fR
                    864: .br
                    865: \&\fB.\fR
                    866: .ZP
                    867: Places the given text before the specified line.
                    868: The current line is left at the last line input;
                    869: if there were none input it is left at the line before the addressed line.
                    870: This command differs from
                    871: .I append
                    872: only in the placement of text.
                    873: .KS
                    874: .LC
                    875: \fBi!\fR
                    876: .br
                    877: \fItext\fR
                    878: .br
                    879: \&\fB.\fR
                    880: .ZP
                    881: The variant toggles
                    882: .I autoindent
                    883: during the
                    884: .I insert.
                    885: .KE
                    886: .LC
                    887: ( \fB.\fR , \fB.\fR+1 ) \fBjoin\fR \fIcount\fR \fIflags\fR     abbr: \fBj\fR
                    888: .ZP
                    889: Places the text from a specified range of lines
                    890: together on one line.
                    891: White space is adjusted at each junction to provide at least
                    892: one blank character, two if there was a `\fB.\fR' at the end of the line,
                    893: or none if the first following character is a `)'.
                    894: If there is already white space at the end of the line,
                    895: then the white space at the start of the next line will be discarded.
                    896: .LC
                    897: \fBj!\fR
                    898: .ZP
                    899: The variant causes a simpler
                    900: .I join
                    901: with no white space processing; the characters in the lines are simply
                    902: concatenated.
                    903: .LC
                    904: ( \fB.\fR ) \fBk\fR \fIx\fR
                    905: .ZP
                    906: The
                    907: .I k
                    908: command is a synonym for
                    909: .I mark.
                    910: It does not require a blank or tab before the following letter.
                    911: .LC
                    912: ( \fB.\fR , \fB.\fR ) \fBlist\fR \fIcount\fR \fIflags\fR
                    913: .ZP
                    914: Prints the specified lines in a more unambiguous way:
                    915: tabs are printed as `^I'
                    916: and the end of each line is marked with a trailing `$'.
                    917: The current line is left at the last line printed.
                    918: .LC
                    919: \fBmap\fR \fIlhs\fR \fIrhs\fR
                    920: .ZP
                    921: The
                    922: .I map
                    923: command is used to define macros for use in
                    924: .I visual
                    925: mode.
                    926: .I Lhs
                    927: should be a single character, or the sequence ``#n'', for n a digit,
                    928: referring to function key \fIn\fR.  When this character or function key
                    929: is typed in
                    930: .I visual
                    931: mode, it will be as though the corresponding \fIrhs\fR had been typed.
                    932: On terminals without function keys, you can type ``#n''.
                    933: See section 6.9 of the ``Introduction to Display Editing with Vi''
                    934: for more details.
                    935: .LC
                    936: ( \fB.\fR ) \fBmark\fR \fIx\fR
                    937: .ZP
                    938: Gives the specified line mark
                    939: .I x,
                    940: a single lower case letter.
                    941: The
                    942: .I x
                    943: must be preceded by a blank or a tab.
                    944: The addressing form `\'x' then addresses this line.
                    945: The current line is not affected by this command.
                    946: .LC
                    947: ( \fB.\fR , \fB.\fR ) \fBmove\fR \fIaddr\fR    abbr: \fBm\fR
                    948: .ZP
                    949: The
                    950: .I move
                    951: command repositions the specified lines to be after
                    952: .I addr .
                    953: The first of the moved lines becomes the current line.
                    954: .LC
                    955: \fBnext\fR     abbr: \fBn\fR
                    956: .ZP
                    957: The next file from the command line argument list is edited.
                    958: .LC
                    959: \fBn!\fR
                    960: .ZP
                    961: The variant suppresses warnings about the modifications to the buffer not
                    962: having been written out, discarding (irretrievably) any changes which may
                    963: have been made.
                    964: .LC
                    965: \fBn\fR \fIfilelist\fR
                    966: .br
                    967: \fBn\fR \fB+\fIcommand\fR \fIfilelist\fR
                    968: .ZP
                    969: The specified
                    970: .I filelist
                    971: is expanded and the resulting list replaces the
                    972: current argument list;
                    973: the first file in the new list is then edited.
                    974: If
                    975: .I command
                    976: is given (it must contain no spaces), then it is executed after editing the first such file.
                    977: .LC
                    978: ( \fB.\fR , \fB.\fR ) \fBnumber\fR \fIcount\fR \fIflags\fR     abbr: \fB#\fR or \fBnu\fR
                    979: .ZP
                    980: Prints each specified line preceded by its buffer line
                    981: number.
                    982: The current line is left at the last line printed.
                    983: .KS
                    984: .LC
                    985: ( \fB.\fR ) \fBopen\fR \fIflags\fR     abbr: \fBo\fR
                    986: .br
                    987: ( \fB.\fR ) \fBopen\fR /\fIpat\|\fR/ \fIflags\fR
                    988: .ZP
                    989: Enters intraline editing \fIopen\fR mode at each addressed line.
                    990: If
                    991: .I pat
                    992: is given,
                    993: then the cursor will be placed initially at the beginning of the
                    994: string matched by the pattern.
                    995: To exit this mode use Q.
                    996: See
                    997: .I "An Introduction to Display Editing with Vi"
                    998: for more details.
                    999: .KE
                   1000: .LC
                   1001: \fBpreserve\fR
                   1002: .ZP
                   1003: The current editor buffer is saved as though the system had just crashed.
                   1004: This command is for use only in emergencies when a
                   1005: .I write
                   1006: command has resulted in an error and you don't know how to save your work.
                   1007: After a
                   1008: .I preserve
                   1009: you should seek help.
                   1010: .LC
                   1011: ( \fB.\fR , \fB.\fR )\|\fBprint\fR \fIcount\fR abbr: \fBp\fR or \fBP\fR
                   1012: .ZP
                   1013: Prints the specified lines
                   1014: with non-printing characters printed as control characters `^\fIx\fR\|';
                   1015: delete (octal 177) is represented as `^?'.
                   1016: The current line is left at the last line printed.
                   1017: .LC
                   1018: ( \fB.\fR )\|\fBput\fR \fIbuffer\fR    abbr: \fBpu\fR
                   1019: .ZP
                   1020: Puts back
                   1021: previously
                   1022: .I deleted
                   1023: or
                   1024: .I yanked
                   1025: lines.
                   1026: Normally used with
                   1027: .I delete
                   1028: to effect movement of lines,
                   1029: or with
                   1030: .I yank
                   1031: to effect duplication of lines.
                   1032: If no
                   1033: .I buffer
                   1034: is specified, then the last
                   1035: .I deleted
                   1036: or
                   1037: .I yanked
                   1038: text is restored.*
                   1039: .FS
                   1040: * But no modifying commands may intervene between the
                   1041: .I delete
                   1042: or
                   1043: .I yank
                   1044: and the
                   1045: .I put,
                   1046: nor may lines be moved between files without using a named buffer.
                   1047: .FE
                   1048: By using a named buffer, text may be restored that was saved there at any
                   1049: previous time.
                   1050: .LC
                   1051: \fBquit\fR     abbr: \fBq\fR
                   1052: .ZP
                   1053: Causes 
                   1054: .I ex
                   1055: to terminate.
                   1056: No automatic write of the editor buffer to a file is performed.
                   1057: However,
                   1058: .I ex
                   1059: issues a warning message if the file has changed
                   1060: since the last
                   1061: .I write
                   1062: command was issued, and does not
                   1063: .I quit.\(dg
                   1064: .FS
                   1065: \(dg \fIEx\fR
                   1066: will also issue a diagnostic if there are more files in the argument
                   1067: list.
                   1068: .FE
                   1069: Normally, you will wish to save your changes, and you 
                   1070: should give a \fIwrite\fR command;
                   1071: if you wish to discard them, use the \fBq!\fR command variant.
                   1072: .LC
                   1073: \fBq!\fR
                   1074: .ZP
                   1075: Quits from the editor, discarding changes to the buffer without complaint.
                   1076: .LC
                   1077: ( \fB.\fR ) \fBread\fR \fIfile\fR      abbr: \fBr\fR
                   1078: .ZP
                   1079: Places a copy of the text of the given file in the
                   1080: editing buffer after the specified line.
                   1081: If no 
                   1082: .I file
                   1083: is given the current file name is used.
                   1084: The current file name is not changed unless there is none in which
                   1085: case
                   1086: .I file
                   1087: becomes the current name.
                   1088: The sensibility restrictions for the 
                   1089: .I edit
                   1090: command apply here also.
                   1091: If the file buffer is empty and there is no current name then
                   1092: .I ex
                   1093: treats this as an
                   1094: .I edit
                   1095: command.
                   1096: .IP
                   1097: Address `0' is legal for this command and causes the file to be read at
                   1098: the beginning of the buffer.
                   1099: Statistics are given as for the 
                   1100: .I edit
                   1101: command when the 
                   1102: .I read
                   1103: successfully terminates.
                   1104: After a
                   1105: .I read
                   1106: the current line is the last line read.\(dd
                   1107: .FS
                   1108: \(dd Within
                   1109: .I open
                   1110: and
                   1111: .I visual
                   1112: the current line is set to the first line read rather than the last.
                   1113: .FE
                   1114: .LC
                   1115: ( \fB.\fR ) \fBread\fR  \fB!\fR\fIcommand\fR
                   1116: .ZP
                   1117: Reads the output of the command
                   1118: .I command
                   1119: into the buffer after the specified line.
                   1120: This is not a variant form of the command, rather a read
                   1121: specifying a
                   1122: .I command
                   1123: rather than a 
                   1124: .I filename;
                   1125: a blank or tab before the \fB!\fR is mandatory.
                   1126: .LC
                   1127: \fBrecover \fIfile\fR
                   1128: .ZP
                   1129: Recovers
                   1130: .I file
                   1131: from the system save area.
                   1132: Used after a accidental hangup of the phone**
                   1133: .FS
                   1134: ** The system saves a copy of the file you were editing only if you
                   1135: have made changes to the file.
                   1136: .FE
                   1137: or a system crash** or
                   1138: .I preserve
                   1139: command.
                   1140: Except when you use
                   1141: .I preserve
                   1142: you will be notified by mail when a file is saved.
                   1143: .LC
                   1144: \fBrewind\fR   abbr: \fBrew\fR
                   1145: .ZP
                   1146: The argument list is rewound, and the first file in the list is edited.
                   1147: .LC
                   1148: \fBrew!\fR
                   1149: .ZP
                   1150: Rewinds the argument list discarding any changes made to the current buffer.
                   1151: .LC
                   1152: \fBset\fR \fIparameter\fR
                   1153: .ZP
                   1154: With no arguments, prints those options whose values have been
                   1155: changed from their defaults;
                   1156: with parameter
                   1157: .I all
                   1158: it prints all of the option values.
                   1159: .IP
                   1160: Giving an option name followed by a `?'
                   1161: causes the current value of that option to be printed.
                   1162: The `?' is unnecessary unless the option is Boolean valued.
                   1163: Boolean options are given values either by the form
                   1164: `set \fIoption\fR' to turn them on or
                   1165: `set no\fIoption\fR' to turn them off;
                   1166: string and numeric options are assigned via the form
                   1167: `set \fIoption\fR=value'.
                   1168: .IP
                   1169: More than one parameter may be given to 
                   1170: .I set \|;
                   1171: they are interpreted left-to-right.
                   1172: .LC
                   1173: \fBshell\fR    abbr: \fBsh\fR
                   1174: .IP
                   1175: A new shell is created.
                   1176: When it terminates, editing resumes.
                   1177: .LC
                   1178: \fBsource\fR \fIfile\fR        abbr: \fBso\fR
                   1179: .IP
                   1180: Reads and executes commands from the specified file.
                   1181: .I Source
                   1182: commands may be nested.
                   1183: .LC
                   1184: ( \fB.\fR , \fB.\fR ) \fBsubstitute\fR /\fIpat\fR\|/\fIrepl\fR\|/ \fIoptions\fR \fIcount\fR \fIflags\fR        abbr: \fBs\fR
                   1185: .IP
                   1186: On each specified line, the first instance of pattern
                   1187: .I pat
                   1188: is replaced by replacement pattern
                   1189: .I repl.
                   1190: If the
                   1191: .I global
                   1192: indicator option character `g'
                   1193: appears, then all instances are substituted;
                   1194: if the
                   1195: .I confirm
                   1196: indication character `c' appears,
                   1197: then before each substitution the line to be substituted
                   1198: is typed with the string to be substituted marked
                   1199: with `\(ua' characters.
                   1200: By typing an `y' one can cause the substitution to be performed,
                   1201: any other input causes no change to take place.
                   1202: After a
                   1203: .I substitute
                   1204: the current line is the last line substituted.
                   1205: .IP
                   1206: Lines may be split by substituting
                   1207: new-line characters into them.
                   1208: The newline in
                   1209: .I repl
                   1210: must be escaped by preceding it with a `\e'.
                   1211: Other metacharacters available in
                   1212: .I pat
                   1213: and
                   1214: .I repl
                   1215: are described below.
                   1216: .LC
                   1217: .B stop
                   1218: .ZP
                   1219: Suspends the editor, returning control to the top level shell.
                   1220: If
                   1221: .I autowrite
                   1222: is set and there are unsaved changes,
                   1223: a write is done first unless the form
                   1224: .B stop !
                   1225: is used.
                   1226: This commands is only available where supported by the teletype driver
                   1227: and operating system.
                   1228: .LC
                   1229: ( \fB.\fR , \fB.\fR ) \fBsubstitute\fR \fIoptions\fR \fIcount\fR \fIflags\fR   abbr: \fBs\fR
                   1230: .ZP
                   1231: If
                   1232: .I pat
                   1233: and
                   1234: .I repl
                   1235: are omitted, then the last substitution is repeated.
                   1236: This is a synonym for the
                   1237: .B &
                   1238: command.
                   1239: .LC
                   1240: ( \fB.\fR , \fB.\fR ) \fBt\fR \fIaddr\fR \fIflags\fR
                   1241: .ZP
                   1242: The
                   1243: .I t
                   1244: command is a synonym for 
                   1245: .I copy .
                   1246: .LC
                   1247: \fBta\fR \fItag\fR
                   1248: .ZP
                   1249: The focus of editing switches to the location of
                   1250: .I tag,
                   1251: switching to a different line in the current file where it is defined,
                   1252: or if necessary to another file.\(dd
                   1253: .FS
                   1254: \(dd If you have modified the current file before giving a
                   1255: .I tag
                   1256: command, you must write it out; giving another
                   1257: .I tag
                   1258: command, specifying no
                   1259: .I tag
                   1260: will reuse the previous tag.
                   1261: .FE
                   1262: .IP
                   1263: The tags file is normally created by a program such as
                   1264: .I ctags,
                   1265: and consists of a number of lines with three fields separated by blanks
                   1266: or tabs.  The first field gives the name of the tag,
                   1267: the second the name of the file where the tag resides, and the third
                   1268: gives an addressing form which can be used by the editor to find the tag;
                   1269: this field is usually a contextual scan using `/\fIpat\fR/' to be immune
                   1270: to minor changes in the file.  Such scans are always performed as if
                   1271: .I nomagic
                   1272: was set.
                   1273: .PP
                   1274: The tag names in the tags file must be sorted alphabetically.
                   1275: .LC
                   1276: \fBunabbreviate\fR \fIword\fP  abbr: \fBuna\fP
                   1277: .ZP
                   1278: Delete
                   1279: .I word
                   1280: from the list of abbreviations.
                   1281: .LC
                   1282: \fBundo\fR     abbr: \fBu\fR
                   1283: .ZP
                   1284: Reverses the changes made in the buffer by the last
                   1285: buffer editing command.
                   1286: Note that
                   1287: .I global
                   1288: commands are considered a single command for the purpose of 
                   1289: .I undo
                   1290: (as are
                   1291: .I open
                   1292: and
                   1293: .I visual.)
                   1294: Also, the commands
                   1295: .I write
                   1296: and
                   1297: .I edit
                   1298: which interact with the
                   1299: file system cannot be undone.
                   1300: .I Undo
                   1301: is its own inverse.
                   1302: .IP
                   1303: .I Undo
                   1304: always marks the previous value of the current line `\fB.\fR'
                   1305: as `\'\''.
                   1306: After an
                   1307: .I undo
                   1308: the current line is the first line restored
                   1309: or the line before the first line deleted if no lines were restored.
                   1310: For commands with more global effect
                   1311: such as
                   1312: .I global
                   1313: and
                   1314: .I visual
                   1315: the current line regains it's pre-command value after an
                   1316: .I undo.
                   1317: .LC
                   1318: \fBunmap\fR \fIlhs\fR
                   1319: .ZP
                   1320: The macro expansion associated by
                   1321: .I map
                   1322: for
                   1323: .I lhs
                   1324: is removed.
                   1325: .LC
                   1326: ( 1 , $ ) \fBv\fR /\fIpat\fR\|/ \fIcmds\fR
                   1327: .ZP
                   1328: A synonym for the
                   1329: .I global
                   1330: command variant \fBg!\fR, running the specified \fIcmds\fR on each
                   1331: line which does not match \fIpat\fR.
                   1332: .LC
                   1333: \fBversion\fR  abbr: \fBve\fR
                   1334: .ZP
                   1335: Prints the current version number of the editor
                   1336: as well as the date the editor was last changed.
                   1337: .LC
                   1338: ( \fB.\fR ) \fBvisual\fR \fItype\fR \fIcount\fR \fIflags\fR    abbr: \fBvi\fR
                   1339: .ZP
                   1340: Enters visual mode at the specified line.
                   1341: .I Type
                   1342: is optional and may be `\-' , `\(ua' or `\fB.\fR'
                   1343: as in the
                   1344: .I z
                   1345: command to specify the placement of the specified line on the screen.
                   1346: By default, if
                   1347: .I type
                   1348: is omitted, the specified line is placed as the first on the screen.
                   1349: A
                   1350: .I count
                   1351: specifies an initial window size; the default is the value of the option
                   1352: .I window.
                   1353: See the document
                   1354: .I "An Introduction to Display Editing with Vi"
                   1355: for more details.
                   1356: To exit this mode, type Q.
                   1357: .LC
                   1358: \fBvisual\fP file
                   1359: .br
                   1360: \fBvisual\fP +\fIn\fP file
                   1361: .ZP
                   1362: From visual mode,
                   1363: this command is the same as edit.
                   1364: .LC
                   1365: ( 1 , $ ) \fBwrite\fR \fIfile\fR       abbr: \fBw\fR
                   1366: .ZP
                   1367: Writes changes made back to \fIfile\fR, printing the number of lines and
                   1368: characters written.
                   1369: Normally \fIfile\fR is omitted and the text goes back where it came from.
                   1370: If a \fIfile\fR is specified, then text will be written to that file.*
                   1371: .FS
                   1372: * The editor writes to a file only if it is
                   1373: the current file and is
                   1374: .I edited ,
                   1375: if the file does not exist,
                   1376: or if the file is actually a teletype,
                   1377: .I /dev/tty,
                   1378: .I /dev/null.
                   1379: Otherwise, you must give the variant form \fBw!\fR to force the write.
                   1380: .FE
                   1381: If the file does not exist it is created.
                   1382: The current file name is changed only if there is no current file
                   1383: name; the current line is never changed.
                   1384: .IP
                   1385: If an error occurs while writing the current and
                   1386: .I edited
                   1387: file, the editor
                   1388: considers that there has been ``No write since last change''
                   1389: even if the buffer had not previously been modified.
                   1390: .LC
                   1391: ( 1 , $ ) \fBwrite>>\fR \fIfile\fR     abbr: \fBw>>\fR
                   1392: .ZP
                   1393: Writes the buffer contents at the end of
                   1394: an existing file.
                   1395: .IP
                   1396: .LC
                   1397: \fBw!\fR \fIname\fR
                   1398: .ZP
                   1399: Overrides the checking of the normal \fIwrite\fR command,
                   1400: and will write to any file which the system permits.
                   1401: .LC
                   1402: ( 1 , $ ) \fBw\fR  \fB!\fR\fIcommand\fR
                   1403: .ZP
                   1404: Writes the specified lines into 
                   1405: .I command.
                   1406: Note the difference between \fBw!\fR which overrides checks and
                   1407: \fBw\ \ !\fR which writes to a command.
                   1408: .LC
                   1409: \fBwq\fR \fIname\fR
                   1410: .ZP
                   1411: Like a \fIwrite\fR and then a \fIquit\fR command.
                   1412: .LC
                   1413: \fBwq!\fR \fIname\fR
                   1414: .ZP
                   1415: The variant overrides checking on the sensibility of the
                   1416: .I write
                   1417: command, as \fBw!\fR does.
                   1418: .LC
                   1419: \fBxit\fP \fIname\fR
                   1420: .ZP
                   1421: If any changes have been made and not written, writes the buffer out.
                   1422: Then, in any case, quits.
                   1423: .LC
                   1424: ( \fB.\fR , \fB.\fR )\|\fByank\fR \fIbuffer\fR \fIcount\fR     abbr: \fBya\fR
                   1425: .ZP
                   1426: Places the specified lines in the named
                   1427: .I buffer,
                   1428: for later retrieval via
                   1429: .I put.
                   1430: If no buffer name is specified, the lines go to a more volatile place;
                   1431: see the \fIput\fR command description.
                   1432: .LC
                   1433: ( \fB.+1\fR ) \fBz\fR \fIcount\fR
                   1434: .ZP
                   1435: Print the next \fIcount\fR lines, default \fIwindow\fR.
                   1436: .LC
                   1437: ( \fB.\fR ) \fBz\fR \fItype\fR \fIcount\fR
                   1438: .ZP
                   1439: Prints a window of text with the specified line at the top.
                   1440: If \fItype\fR is `\-' the line is placed at the bottom; a `\fB.\fR' causes
                   1441: the line to be placed in the center.*
                   1442: A count gives the number of lines to be displayed rather than
                   1443: double the number specified by the \fIscroll\fR option.
                   1444: On a \s-2CRT\s0 the screen is cleared before display begins unless a
                   1445: count which is less than the screen size is given.
                   1446: The current line is left at the last line printed.
                   1447: .FS
                   1448: * Forms `z=' and `z\(ua' also exist; `z=' places the current line in the
                   1449: center, surrounds it with lines of `\-' characters and leaves the current
                   1450: line at this line.  The form `z\(ua' prints the window before `z\-'
                   1451: would.  The characters `+', `\(ua' and `\-' may be repeated for cumulative
                   1452: effect.
                   1453: On some v2 editors, no
                   1454: .I type
                   1455: may be given.
                   1456: .FE
                   1457: .LC
                   1458: \fB!\fR \fIcommand\fR\fR
                   1459: .ZP
                   1460: The remainder of the line after the `!' character is sent to a shell
                   1461: to be executed.
                   1462: Within the text of
                   1463: .I command
                   1464: the characters 
                   1465: `%' and `#' are expanded as in filenames and the character
                   1466: `!' is replaced with the text of the previous command.
                   1467: Thus, in particular,
                   1468: `!!' repeats the last such shell escape.
                   1469: If any such expansion is performed, the expanded line will be echoed.
                   1470: The current line is unchanged by this command.
                   1471: .IP
                   1472: If there has been ``[No\ write]'' of the buffer contents since the last
                   1473: change to the editing buffer, then a diagnostic will be printed
                   1474: before the command is executed as a warning.
                   1475: A single `!' is printed when the command completes.
                   1476: .LC
                   1477: ( \fIaddr\fR , \fIaddr\fR ) \fB!\fR \fIcommand\fR\fR
                   1478: .ZP
                   1479: Takes the specified address range and supplies it as
                   1480: standard input to
                   1481: .I command;
                   1482: the resulting output then replaces the input lines.
                   1483: .LC
                   1484: ( $ ) \fB=\fR
                   1485: .ZP
                   1486: Prints the line number of the
                   1487: addressed line.
                   1488: The current line is unchanged.
                   1489: .KS
                   1490: .LC
                   1491: ( \fB.\fR , \fB.\fR ) \fB>\fR \fIcount\fR \fIflags\fR
                   1492: .br
                   1493: ( \fB.\fR , \fB.\fR ) \fB<\fR \fIcount\fR \fIflags\fR
                   1494: .IP
                   1495: Perform intelligent shifting on the specified lines;
                   1496: \fB<\fR shifts left and \fB>\fR shift right.
                   1497: The quantity of shift is determined by the
                   1498: .I shiftwidth
                   1499: option and the repetition of the specification character.
                   1500: Only white space (blanks and tabs) is shifted;
                   1501: no non-white characters are discarded in a left-shift.
                   1502: The current line becomes the last line which changed due to the
                   1503: shifting.
                   1504: .KE
                   1505: .LC
                   1506: \fB^D\fR
                   1507: .ZP
                   1508: An end-of-file from a terminal input scrolls through the file.
                   1509: The
                   1510: .I scroll
                   1511: option specifies the size of the scroll, normally a half screen of text.
                   1512: .LC
                   1513: ( \fB.\fR+1 , \fB.\fR+1 )
                   1514: .br
                   1515: ( \fB.\fR+1 , \fB.\fR+1 ) |
                   1516: .ZP
                   1517: An address alone causes the addressed lines to be printed.
                   1518: A blank line prints the next line in the file.
                   1519: .LC
                   1520: ( \fB.\fR , \fB.\fR ) \fB&\fR \fIoptions\fR \fIcount\fR \fIflags\fR
                   1521: .ZP
                   1522: Repeats the previous
                   1523: .I substitute
                   1524: command.
                   1525: .LC
                   1526: ( \fB.\fR , \fB.\fR ) \fB\s+2~\s0\fR \fIoptions\fR \fIcount\fR \fIflags\fR
                   1527: .ZP
                   1528: Replaces the previous regular expression with the previous
                   1529: replacement pattern from a substitution.
                   1530: .NH 1
                   1531: Regular expressions and substitute replacement patterns
                   1532: .NH 2
                   1533: Regular expressions
                   1534: .PP
                   1535: A regular expression specifies a set of strings of characters.
                   1536: A member of this set of strings is said to be
                   1537: .I matched
                   1538: by the regular expression.
                   1539: .I Ex
                   1540: remembers two previous regular expressions:
                   1541: the previous regular expression used in a
                   1542: .I substitute
                   1543: command
                   1544: and the previous regular expression used elsewhere
                   1545: (referred to as the previous \fIscanning\fR regular expression.)
                   1546: The previous regular expression
                   1547: can always be referred to by a null \fIre\fR, e.g. `//' or `??'.
                   1548: .NH 2
                   1549: Magic and nomagic
                   1550: .PP
                   1551: The regular expressions allowed by
                   1552: .I ex 
                   1553: are constructed in one of two ways depending on the setting of
                   1554: the
                   1555: .I magic
                   1556: option.
                   1557: The
                   1558: .I ex
                   1559: and
                   1560: .I vi
                   1561: default setting of
                   1562: .I magic
                   1563: gives quick access to a powerful set of regular expression
                   1564: metacharacters.
                   1565: The disadvantage of
                   1566: .I magic
                   1567: is that the user must remember that these metacharacters are
                   1568: .I magic
                   1569: and precede them with the character `\e'
                   1570: to use them as ``ordinary'' characters.
                   1571: With
                   1572: .I nomagic,
                   1573: the default for
                   1574: .I edit,
                   1575: regular expressions are much simpler,
                   1576: there being only two metacharacters.
                   1577: The power of the other metacharacters is still available by preceding
                   1578: the (now) ordinary character with a `\e'.
                   1579: Note that `\e' is thus always a metacharacter.
                   1580: .PP
                   1581: The remainder of the discussion of regular expressions assumes
                   1582: that
                   1583: that the setting of this option is
                   1584: .I magic.\(dg
                   1585: .FS
                   1586: \(dg To discern what is true with
                   1587: .I nomagic
                   1588: it suffices to remember that the only
                   1589: special characters in this case will be `\(ua' at the beginning
                   1590: of a regular expression,
                   1591: `$' at the end of a regular expression,
                   1592: and `\e'.
                   1593: With
                   1594: .I nomagic
                   1595: the characters `\s+2~\s0' and `&' also lose their special meanings
                   1596: related to the replacement pattern of a substitute.
                   1597: .FE
                   1598: .NH 2
                   1599: Basic regular expression summary
                   1600: .PP
                   1601: The following basic constructs are used to construct
                   1602: .I magic
                   1603: mode regular expressions.
                   1604: .IP \fIchar\fR 15
                   1605: An ordinary character matches itself.
                   1606: The characters `\(ua' at the beginning of a line,
                   1607: `$' at the end of line,
                   1608: `*' as any character other than the first,
                   1609: `.', `\e', `[', and `\s+2~\s0' are not ordinary characters and
                   1610: must be escaped (preceded) by `\e' to be treated as such.
                   1611: .IP \fB\(ua\fR
                   1612: At the beginning of a pattern
                   1613: forces the match to succeed only at the beginning of a line.
                   1614: .IP \fB$\fR
                   1615: At the end of a regular expression forces the match to
                   1616: succeed only at the end of the line.
                   1617: .IP \&\fB.\fR
                   1618: Matches any single character except
                   1619: the new-line character.
                   1620: .IP \fB\e<\fR
                   1621: Forces the match
                   1622: to occur only at the beginning of a ``variable'' or ``word'';
                   1623: that is, either at the beginning of a line, or just before
                   1624: a letter, digit, or underline and after a character not one of
                   1625: these.
                   1626: .IP \fB\e>\fR
                   1627: Similar to `\e<', but matching the end of a ``variable''
                   1628: or ``word'', i.e. either the end of the line or before character
                   1629: which is neither a letter, nor a digit, nor the underline character.
                   1630: .IP \fB[\fIstring\fR]\fR
                   1631: Matches any (single) character in the class defined by
                   1632: .I string.
                   1633: Most characters in
                   1634: .I string
                   1635: define themselves.
                   1636: A pair of characters separated by `\-' in
                   1637: .I string
                   1638: defines the set of characters collating between the specified lower and upper
                   1639: bounds, thus `[a\-z]' as a regular expression matches
                   1640: any (single) lower-case letter.
                   1641: If the first character of
                   1642: .I string
                   1643: is an `\(ua' then the construct
                   1644: matches those characters which it otherwise would not;
                   1645: thus `[\(uaa\-z]' matches anything but a lower-case letter (and of course a
                   1646: newline).
                   1647: To place any of the characters
                   1648: `\(ua', `[', or `\-' in
                   1649: .I string
                   1650: you must escape them with a preceding `\e'.
                   1651: .NH 2
                   1652: Combining regular expression primitives
                   1653: .PP
                   1654: The concatenation of two regular expressions matches the leftmost and
                   1655: then longest string
                   1656: which can be divided with the first piece matching the first regular
                   1657: expression and the second piece matching the second.
                   1658: Any of the (single character matching) regular expressions mentioned
                   1659: above may be followed by the character `*' to form a regular expression
                   1660: which matches any number of adjacent occurrences (including 0) of characters
                   1661: matched by the regular expression it follows.
                   1662: .PP
                   1663: The character `\s+2~\s0' may be used in a regular expression,
                   1664: and matches the text which defined the replacement part
                   1665: of the last
                   1666: .I substitute
                   1667: command.
                   1668: A regular expression may be enclosed between the sequences
                   1669: `\e(' and `\e)' with side effects in the
                   1670: .I substitute
                   1671: replacement patterns.
                   1672: .NH 2
                   1673: Substitute replacement patterns
                   1674: .PP
                   1675: The basic metacharacters for the replacement pattern are
                   1676: `&' and `~'; these are
                   1677: given as `\e&' and `\e~' when
                   1678: .I nomagic
                   1679: is set.
                   1680: Each instance of `&' is replaced by the characters
                   1681: which the regular expression matched.
                   1682: The metacharacter `~' stands, in the replacement pattern,
                   1683: for the defining text of the previous replacement pattern.
                   1684: .PP
                   1685: Other metasequences possible in the replacement pattern
                   1686: are always introduced by the escaping character `\e'.
                   1687: The sequence `\e\fIn\fR' is replaced by the text matched
                   1688: by the \fIn\fR-th regular subexpression enclosed between
                   1689: `\e(' and `\e)'.\(dg
                   1690: .FS
                   1691: \(dg When nested, parenthesized subexpressions are present,
                   1692: \fIn\fR is determined by counting occurrences of `\e(' starting from the left.
                   1693: .FE
                   1694: The sequences `\eu' and `\el' cause the immediately following character in
                   1695: the replacement to be converted to upper- or lower-case respectively
                   1696: if this character is a letter.
                   1697: The sequences `\eU' and `\eL' turn such conversion on, either until
                   1698: `\eE' or `\ee' is encountered, or until the end of the replacement pattern.
                   1699: .de LC
                   1700: .br
                   1701: .sp .1i
                   1702: .ne 4
                   1703: .LP
                   1704: .ta 3i
                   1705: ..
                   1706: .NH 1
                   1707: Option descriptions
                   1708: .PP
                   1709: .LC
                   1710: \fBautoindent\fR, \fBai\fR     default: noai
                   1711: .ZP
                   1712: Can be used to ease the preparation of structured program text.
                   1713: At the beginning of each
                   1714: .I append ,
                   1715: .I change
                   1716: or
                   1717: .I insert
                   1718: command
                   1719: or when a new line is
                   1720: .I opened
                   1721: or created by an
                   1722: .I append ,
                   1723: .I change ,
                   1724: .I insert ,
                   1725: or
                   1726: .I substitute
                   1727: operation within
                   1728: .I open
                   1729: or
                   1730: .I visual
                   1731: mode,
                   1732: .I ex
                   1733: looks at the line being appended after,
                   1734: the first line changed
                   1735: or the line inserted before and calculates the amount of white space
                   1736: at the start of the line.
                   1737: It then aligns the cursor at the level of indentation so determined.
                   1738: .IP
                   1739: If the user then types lines of text in,
                   1740: they will continue to be justified at the displayed indenting level.
                   1741: If more white space is typed at the beginning of a line,
                   1742: the following line will start aligned with the first non-white character
                   1743: of the previous line.
                   1744: To back the cursor up to the preceding tab stop one can hit
                   1745: \fB^D\fR.
                   1746: The tab stops going backwards are defined at multiples of the
                   1747: .I shiftwidth
                   1748: option.
                   1749: You
                   1750: .I cannot
                   1751: backspace over the indent,
                   1752: except by sending an end-of-file with a \fB^D\fR.
                   1753: .IP
                   1754: Specially processed in this mode is a line with no characters added
                   1755: to it, which turns into a completely blank line (the white
                   1756: space provided for the
                   1757: .I autoindent
                   1758: is discarded.)
                   1759: Also specially processed in this mode are lines beginning with
                   1760: an `\(ua' and immediately followed by a \fB^D\fR.
                   1761: This causes the input to be repositioned at the beginning of the line,
                   1762: but retaining the previous indent for the next line.
                   1763: Similarly, a `0' followed by a \fB^D\fR
                   1764: repositions at the beginning but without
                   1765: retaining the previous indent.
                   1766: .IP
                   1767: .I Autoindent
                   1768: doesn't happen in
                   1769: .I global
                   1770: commands or when the input is not a terminal.
                   1771: .LC
                   1772: \fBautoprint\fR, \fBap\fR      default: ap
                   1773: .ZP
                   1774: Causes the current line to be printed after each
                   1775: .I delete ,
                   1776: .I copy ,
                   1777: .I join ,
                   1778: .I move ,
                   1779: .I substitute ,
                   1780: .I t ,
                   1781: .I undo
                   1782: or
                   1783: shift command.
                   1784: This has the same effect as supplying a trailing `p'
                   1785: to each such command.
                   1786: .I Autoprint
                   1787: is suppressed in globals,
                   1788: and only applies to the last of many commands on a line.
                   1789: .LC
                   1790: \fBautowrite\fR, \fBaw\fR      default: noaw
                   1791: .ZP
                   1792: Causes the contents of the buffer to be written to the current file
                   1793: if you have modified it and give a
                   1794: .I next,
                   1795: .I rewind,
                   1796: .I stop,
                   1797: .I tag,
                   1798: or
                   1799: .I !
                   1800: command, or a \fB^\(ua\fR (switch files) or \fB^]\fR (tag goto) command
                   1801: in
                   1802: .I visual.
                   1803: Note, that the
                   1804: .I edit
                   1805: and
                   1806: .I ex
                   1807: commands do
                   1808: .B not
                   1809: autowrite.
                   1810: In each case, there is an equivalent way of switching when autowrite
                   1811: is set to avoid the
                   1812: .I autowrite
                   1813: (\fIedit\fR
                   1814: for
                   1815: .I next ,
                   1816: .I rewind!
                   1817: for .I rewind ,
                   1818: .I stop!
                   1819: for
                   1820: .I stop ,
                   1821: .I tag!
                   1822: for
                   1823: .I tag ,
                   1824: .I shell
                   1825: for
                   1826: .I ! ,
                   1827: and
                   1828: \fB:e\ #\fR and a \fB:ta!\fR command from within
                   1829: .I visual).
                   1830: .LC
                   1831: \fBbeautify\fR, \fBbf\fR       default: nobeautify
                   1832: .ZP
                   1833: Causes all control characters except tab, newline and form-feed
                   1834: to be discarded from the input.
                   1835: A complaint is registered the first time a
                   1836: backspace character is discarded.
                   1837: .I Beautify
                   1838: does not apply to command input.
                   1839: .LC
                   1840: \fBdirectory\fR, \fBdir\fR     default: dir=/tmp
                   1841: .ZP
                   1842: Specifies the directory in which
                   1843: .I ex
                   1844: places its buffer file.
                   1845: If this directory in not
                   1846: writable, then the editor will exit abruptly when it fails to be
                   1847: able to create its buffer there.
                   1848: .LC
                   1849: \fBedcompatible\fR     default: noedcompatible
                   1850: .ZP
                   1851: Causes the presence of absence of
                   1852: .B g
                   1853: and
                   1854: .B c
                   1855: suffixes on substitute commands to be remembered, and to be toggled
                   1856: by repeating the suffices.  The suffix
                   1857: .B r
                   1858: makes the substitution be as in the
                   1859: .I ~
                   1860: command, instead of like
                   1861: .I &.
                   1862: .LC
                   1863: \fBerrorbells\fR, \fBeb\fR     default: noeb
                   1864: .ZP
                   1865: Error messages are preceded by a bell.*
                   1866: .FS
                   1867: * Bell ringing in
                   1868: .I open
                   1869: and
                   1870: .I visual
                   1871: on errors is not suppressed by setting
                   1872: .I noeb.
                   1873: .FE
                   1874: If possible the editor always places the error message in a standout mode of the
                   1875: terminal (such as inverse video) instead of ringing the bell.
                   1876: .LC
                   1877: \fBhardtabs\fR, \fBht\fR       default: ht=8
                   1878: .ZP
                   1879: Gives the boundaries on which terminal hardware tabs are set (or
                   1880: on which the system expands tabs).
                   1881: .LC
                   1882: \fBignorecase\fR, \fBic\fR     default: noic
                   1883: .ZP
                   1884: All upper case characters in the text are mapped to lower case in regular
                   1885: expression matching.
                   1886: In addition, all upper case characters in regular expressions are mapped
                   1887: to lower case except in character class specifications.
                   1888: .LC
                   1889: \fBlisp\fR     default: nolisp
                   1890: .ZP
                   1891: \fIAutoindent\fR indents appropriately for
                   1892: .I lisp
                   1893: code, and the \fB( ) { } [[\fR and \fB]]\fR commands in
                   1894: .I open
                   1895: and
                   1896: .I visual
                   1897: are modified to have meaning for \fIlisp\fR.
                   1898: .LC
                   1899: \fBlist\fR     default: nolist
                   1900: .ZP
                   1901: All printed lines will be displayed (more) unambiguously,
                   1902: showing tabs and end-of-lines as in the
                   1903: .I list
                   1904: command.
                   1905: .LC
                   1906: \fBmagic\fR    default: magic for \fIex\fR and \fIvi\fR\(dg
                   1907: .FS
                   1908: \(dg \fINomagic\fR for \fIedit\fR.
                   1909: .FE
                   1910: .ZP
                   1911: If
                   1912: .I nomagic
                   1913: is set, the number of regular expression metacharacters is greatly reduced,
                   1914: with only `\(ua' and `$' having special effects.
                   1915: In addition the metacharacters
                   1916: `~'
                   1917: and
                   1918: `&'
                   1919: of the replacement pattern are treated as normal characters.
                   1920: All the normal metacharacters may be made
                   1921: .I magic
                   1922: when
                   1923: .I nomagic
                   1924: is set by preceding them with a `\e'.
                   1925: .LC
                   1926: \fBmesg\fR     default: mesg
                   1927: .ZP
                   1928: Causes write permission to be turned off to the terminal
                   1929: while you are in visual mode, if
                   1930: .I nomesg
                   1931: is set.
                   1932: .LC
                   1933: \fBmodeline\fR default: nomodeline
                   1934: .ZP
                   1935: If
                   1936: .I modeline
                   1937: is set, then the first 5 lines and the last five lines of the file
                   1938: will be checked for ex command lines and the comands issued.
                   1939: To be recognized as a command line, the line must have the string
                   1940: .B ex:
                   1941: or
                   1942: .B vi:
                   1943: preceeded by a tab or a space.  This string may be anywhere in the
                   1944: line and anything after the 
                   1945: .I :
                   1946: is interpeted as editor commands.  This option defaults to off because
                   1947: of unexpected behavior when editting files such as
                   1948: .I /etc/passwd.
                   1949: .LC
                   1950: \fBnumber, nu\fR       default: nonumber
                   1951: .ZP
                   1952: Causes all output lines to be printed with their
                   1953: line numbers.
                   1954: In addition each input line will be prompted for by supplying the line number
                   1955: it will have.
                   1956: .LC
                   1957: \fBopen\fR     default: open
                   1958: .ZP
                   1959: If \fInoopen\fR, the commands
                   1960: .I open
                   1961: and
                   1962: .I visual
                   1963: are not permitted.
                   1964: This is set for
                   1965: .I edit
                   1966: to prevent confusion resulting from accidental entry to 
                   1967: open or visual mode.
                   1968: .LC
                   1969: \fBoptimize, opt\fR    default: optimize
                   1970: .ZP
                   1971: Throughput of text is expedited by setting the terminal
                   1972: to not do automatic carriage returns
                   1973: when printing more than one (logical) line of output,
                   1974: greatly speeding output on terminals without addressable
                   1975: cursors when text with leading white space is printed.
                   1976: .LC
                   1977: \fBparagraphs,\ para\fR        default: para=IPLPPPQPP\0LIbp
                   1978: .ZP
                   1979: Specifies the paragraphs for the \fB{\fR and \fB}\fR operations in
                   1980: .I open
                   1981: and 
                   1982: .I visual.
                   1983: The pairs of characters in the option's value are the names
                   1984: of the macros which start paragraphs.
                   1985: .LC
                   1986: \fBprompt\fR   default: prompt
                   1987: .ZP
                   1988: Command mode input is prompted for with a `:'.
                   1989: .LC
                   1990: \fBredraw\fR   default: noredraw
                   1991: .ZP
                   1992: The editor simulates (using great amounts of output), an intelligent
                   1993: terminal on a dumb terminal (e.g. during insertions in
                   1994: .I visual
                   1995: the characters to the right of the cursor position are refreshed
                   1996: as each input character is typed.)
                   1997: Useful only at very high speed.
                   1998: .LC
                   1999: \fBremap\fP    default: remap
                   2000: .ZP
                   2001: If on, macros are repeatedly tried until they are unchanged.
                   2002: For example, if
                   2003: .B o
                   2004: is mapped to
                   2005: .B O ,
                   2006: and
                   2007: .B O
                   2008: is mapped to
                   2009: .B I ,
                   2010: then if
                   2011: .I remap
                   2012: is set,
                   2013: .B o
                   2014: will map to
                   2015: .B I ,
                   2016: but if
                   2017: .I noremap
                   2018: is set, it will map to
                   2019: .B O .
                   2020: .LC
                   2021: \fBreport\fR   default: report=5\(dg
                   2022: .FS
                   2023: \(dg 2 for \fIedit\fR.
                   2024: .FE
                   2025: .ZP
                   2026: Specifies a threshold for feedback from commands.
                   2027: Any command which modifies more than the specified number of lines
                   2028: will provide feedback as to the scope of its changes.
                   2029: For commands such as
                   2030: .I global ,
                   2031: .I open ,
                   2032: .I undo ,
                   2033: and
                   2034: .I visual
                   2035: which have potentially more far reaching scope,
                   2036: the net change in the number of lines in the buffer is
                   2037: presented at the end of the command, subject to this same threshold.
                   2038: Thus notification is suppressed during a
                   2039: .I global
                   2040: command on the individual commands performed.
                   2041: .LC
                   2042: \fBscroll\fR   default: scroll=\(12 window
                   2043: .ZP
                   2044: Determines the number of logical lines scrolled when an end-of-file
                   2045: is received from a terminal input in command mode,
                   2046: and the number of lines printed by a command mode
                   2047: .I z
                   2048: command (double the value of
                   2049: .I scroll ).
                   2050: .LC
                   2051: \fBsections\fR default: sections=SHNHH\0HU
                   2052: .ZP
                   2053: Specifies the section macros for the \fB[[\fR and \fB]]\fR operations
                   2054: in
                   2055: .I open
                   2056: and
                   2057: .I visual.
                   2058: The pairs of characters in the options's value are the names
                   2059: of the macros which start paragraphs.
                   2060: .LC
                   2061: \fBshell\fR, \fBsh\fR  default: sh=/bin/sh
                   2062: .ZP
                   2063: Gives the path name of the shell forked for 
                   2064: the shell escape command `!', and by the
                   2065: .I shell
                   2066: command.
                   2067: The default is taken from SHELL in the environment, if present.
                   2068: .LC
                   2069: \fBshiftwidth\fR, \fBsw\fR     default: sw=8
                   2070: .ZP
                   2071: Gives the width a software tab stop,
                   2072: used in reverse tabbing with \fB^D\fR when using
                   2073: .I autoindent
                   2074: to append text,
                   2075: and by the shift commands.
                   2076: .LC
                   2077: \fBshowmatch, sm\fR    default: nosm
                   2078: .ZP
                   2079: In
                   2080: .I open
                   2081: and
                   2082: .I visual
                   2083: mode, when a \fB)\fR or \fB}\fR is typed, move the cursor to the matching
                   2084: \fB(\fR or \fB{\fR for one second if this matching character is on the
                   2085: screen.  Extremely useful with
                   2086: .I lisp.
                   2087: .LC
                   2088: \fBslowopen, slow\fR   terminal dependent
                   2089: .ZP
                   2090: Affects the display algorithm used in
                   2091: .I visual
                   2092: mode, holding off display updating during input of new text to improve
                   2093: throughput when the terminal in use is both slow and unintelligent.
                   2094: See
                   2095: .I "An Introduction to Display Editing with Vi"
                   2096: for more details.
                   2097: .LC
                   2098: \fBtabstop,\ ts\fR     default: ts=8
                   2099: .ZP
                   2100: The editor expands tabs in the input file to be on
                   2101: .I tabstop
                   2102: boundaries for the purposes of display.
                   2103: .LC
                   2104: \fBtaglength,\ tl\fR   default: tl=0
                   2105: .ZP
                   2106: Tags are not significant beyond this many characters.
                   2107: A value of zero (the default) means that all characters are significant.
                   2108: .LC
                   2109: \fBtags\fR     default: tags=tags /usr/lib/tags
                   2110: .ZP
                   2111: A path of files to be used as tag files for the
                   2112: .I tag
                   2113: command.
                   2114: A requested tag is searched for in the specified files, sequentially.
                   2115: By default, files called
                   2116: .B tags
                   2117: are searched for in the current directory and in /usr/lib
                   2118: (a master file for the entire system).
                   2119: .LC
                   2120: \fBterm\fR     from environment TERM
                   2121: .ZP
                   2122: The terminal type of the output device.
                   2123: .LC
                   2124: \fBterse\fR    default: noterse
                   2125: .ZP
                   2126: Shorter error diagnostics are produced for the experienced user.
                   2127: .LC
                   2128: \fBwarn\fR     default: warn
                   2129: .ZP
                   2130: Warn if there has been `[No write since last change]' before a `!'
                   2131: command escape.
                   2132: .LC
                   2133: \fBwindow\fR   default: window=speed dependent
                   2134: .ZP
                   2135: The number of lines in a text window in the
                   2136: .I visual
                   2137: command.
                   2138: The default is 8 at slow speeds (600 baud or less),
                   2139: 16 at medium speed (1200 baud),
                   2140: and the full screen (minus one line) at higher speeds.
                   2141: .LC
                   2142: \fBw300,\ w1200\, w9600\fR
                   2143: .ZP
                   2144: These are not true options but set
                   2145: .B window
                   2146: only if the speed is slow (300), medium (1200), or high (9600),
                   2147: respectively.
                   2148: They are suitable for an EXINIT
                   2149: and make it easy to change the 8/16/full screen rule.
                   2150: .LC
                   2151: \fBwrapscan\fR, \fBws\fR       default: ws
                   2152: .ZP
                   2153: Searches using the regular expressions in addressing
                   2154: will wrap around past the end of the file.
                   2155: .LC
                   2156: \fBwrapmargin\fR, \fBwm\fR     default: wm=0
                   2157: .ZP
                   2158: Defines a margin for automatic wrapover of text during input in
                   2159: .I open
                   2160: and
                   2161: .I visual
                   2162: modes.  See
                   2163: .I "An Introduction to Text Editing with Vi"
                   2164: for details.
                   2165: .LC
                   2166: \fBwriteany\fR, \fBwa\fR       default: nowa
                   2167: .IP
                   2168: Inhibit the checks normally made before
                   2169: .I write
                   2170: commands, allowing a write to any file which the system protection
                   2171: mechanism will allow.
                   2172: .NH 1
                   2173: Limitations
                   2174: .PP
                   2175: Editor limits that the user is likely to encounter are as follows:
                   2176: 1024 characters per line,
                   2177: 256 characters per global command list,
                   2178: 128 characters per file name,
                   2179: 128 characters in the previous inserted and deleted text in
                   2180: .I open
                   2181: or
                   2182: .I visual,
                   2183: 100 characters in a shell escape command,
                   2184: 63 characters in a string valued option,
                   2185: and 30 characters in a tag name, and
                   2186: a limit of 250000 lines in the file is silently enforced.
                   2187: .PP
                   2188: The
                   2189: .I visual
                   2190: implementation limits the number of macros defined with map to
                   2191: 32, and the total number of characters in macros to be less than 512.
                   2192: .LP
                   2193: .LP
                   2194: .I Acknowledgments.
                   2195: Chuck Haley contributed greatly to the early development of
                   2196: .I ex.
                   2197: Bruce Englar encouraged the redesign which led to
                   2198: .I ex
                   2199: version 1.
                   2200: Bill Joy wrote versions 1 and 2.0 through 2.7,
                   2201: and created the framework that users see in the present editor.
                   2202: Mark Horton added macros and other features and made the
                   2203: editor work on a large number of terminals and Unix systems.

unix.superglobalmegacorp.com

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