Annotation of 43BSDTahoe/man/man1/ed.1, revision 1.1

1.1     ! root        1: .\"    @(#)ed.1        6.1 (Berkeley) 4/29/85
        !             2: .\"
        !             3: .TH ED 1 "April 29, 1985"
        !             4: .AT 3
        !             5: .if t .ds q \(aa
        !             6: .if n .ds q '
        !             7: .SH NAME
        !             8: ed \- text editor
        !             9: .SH SYNOPSIS
        !            10: .B ed
        !            11: [
        !            12: .B \-
        !            13: ] [
        !            14: .B \-x
        !            15: ] [ name ]
        !            16: .SH DESCRIPTION
        !            17: .I Ed
        !            18: is the standard text editor.
        !            19: .PP
        !            20: If a
        !            21: .I name
        !            22: argument is given,
        !            23: .I ed
        !            24: simulates an
        !            25: .I e
        !            26: command (see below)\| on the named file; that is to say,
        !            27: the file is read into
        !            28: .I ed's
        !            29: buffer so that it can be edited.
        !            30: If 
        !            31: .B \-x
        !            32: is present, an
        !            33: .I x
        !            34: command is simulated first to handle an encrypted file.
        !            35: The optional
        !            36: .B \-
        !            37: suppresses the printing
        !            38: of explanatory output
        !            39: and should be used
        !            40: when the standard input is
        !            41: an editor script.
        !            42: .PP
        !            43: .I Ed
        !            44: operates on a copy of any file it is editing; changes made
        !            45: in the copy have no effect on the file until a
        !            46: .IR w ""
        !            47: (write)\|
        !            48: command is given.
        !            49: The copy of the text being edited resides
        !            50: in a temporary file called the 
        !            51: .IR buffer .
        !            52: .PP
        !            53: Commands to
        !            54: .I ed
        !            55: have a simple and regular structure: zero or
        !            56: more
        !            57: .I addresses
        !            58: followed by a single character
        !            59: .I command,
        !            60: possibly
        !            61: followed by parameters to the command.
        !            62: These addresses specify one or more lines in the buffer.
        !            63: Missing addresses are supplied by default.
        !            64: .PP
        !            65: In general, only one command may appear on a line.
        !            66: Certain commands allow the 
        !            67: addition of text to the buffer.
        !            68: While
        !            69: .I ed
        !            70: is accepting text, it is said
        !            71: to be in
        !            72: .I  "input mode."
        !            73: In this mode, no commands are recognized;
        !            74: all input is merely collected.
        !            75: Input mode is left by typing a period `\fB.\fR' alone at the
        !            76: beginning of a line.
        !            77: .PP
        !            78: .I Ed
        !            79: supports a limited form of
        !            80: .I "regular expression"
        !            81: notation.
        !            82: A regular expression specifies
        !            83: a set of strings of characters.
        !            84: A member of this set of strings is said to be
        !            85: .I matched
        !            86: by the regular expression.
        !            87: In the following specification for regular expressions
        !            88: the word `character' means any character but newline.
        !            89: .IP 1.
        !            90: Any character except a special character
        !            91: matches itself.
        !            92: Special characters are
        !            93: the regular expression delimiter plus
        !            94: .RB \e\|[\| .
        !            95: and sometimes ^\|*\|$.
        !            96: .IP 2.
        !            97: A
        !            98: .B .
        !            99: matches any character.
        !           100: .IP 3.
        !           101: A \e followed by any character except a digit or (\|) matches that character.
        !           102: .IP 4.
        !           103: A nonempty string
        !           104: .I s
        !           105: bracketed
        !           106: .RI [ \|s\| ]
        !           107: (or
        !           108: .RI [^ s\| ])
        !           109: matches any character in (or not in)
        !           110: .I s.
        !           111: In 
        !           112: .I s,
        !           113: \e has no special meaning, and ] may only appear as
        !           114: the first letter.
        !           115: A substring 
        !           116: .I a\-b,
        !           117: with
        !           118: .I a
        !           119: and
        !           120: .I b
        !           121: in ascending ASCII order, stands for the inclusive
        !           122: range of ASCII characters.
        !           123: .IP 5.
        !           124: A regular expression of form 1-4 followed by * matches a sequence of
        !           125: 0 or more matches of the regular expression.
        !           126: .IP 6.
        !           127: A regular expression,
        !           128: .I x,
        !           129: of form 1-8, bracketed
        !           130: .RI \e( \|x\| \e)
        !           131: matches what
        !           132: .I x
        !           133: matches.
        !           134: .IP 7.
        !           135: A \e followed by a digit 
        !           136: .I n
        !           137: matches a copy of the string that the
        !           138: bracketed regular expression beginning with the
        !           139: .IR n th
        !           140: \e( matched.
        !           141: .IP 8.
        !           142: A regular expression of form 1-8,
        !           143: .I x,
        !           144: followed by a regular expression of form 1-7,
        !           145: .I y
        !           146: matches a match for
        !           147: .I x
        !           148: followed by a match for
        !           149: .I y,
        !           150: with the
        !           151: .I x
        !           152: match being as long as possible while still permitting a
        !           153: .I y
        !           154: match.
        !           155: .IP 9.
        !           156: A regular expression of form 1-8 preceded by ^
        !           157: (or followed by $), is constrained to matches that
        !           158: begin at the left (or end at the right) end of a line.
        !           159: .IP 10.
        !           160: A regular expression of form 1-9 picks out the
        !           161: longest among the leftmost matches in a line.
        !           162: .IP 11.
        !           163: An empty regular expression stands for a copy of the
        !           164: last regular expression encountered.
        !           165: .PP
        !           166: Regular expressions are used in addresses to specify
        !           167: lines and in one command
        !           168: (see
        !           169: .I s
        !           170: below)\|
        !           171: to specify a portion of a line which is to be replaced.
        !           172: If it is desired to use one of
        !           173: the regular expression metacharacters as an ordinary
        !           174: character, that character may be preceded by `\e'.
        !           175: This also applies to the character bounding the regular
        !           176: expression (often `/')\| and to `\e' itself.
        !           177: .PP
        !           178: To understand addressing in
        !           179: .I ed
        !           180: it is necessary to know that at any time there is a
        !           181: .I  "current line."
        !           182: Generally speaking, the current line is
        !           183: the last line affected by a command; however,
        !           184: the exact effect on the current line
        !           185: is discussed under the description of
        !           186: the command.
        !           187: Addresses are constructed as follows.
        !           188: .TP
        !           189: 1.
        !           190: The character `\fB.\fR' addresses the current line.
        !           191: .TP
        !           192: 2.
        !           193: The character `$' addresses the last line of the buffer.
        !           194: .TP
        !           195: 3.
        !           196: A decimal number
        !           197: .I n
        !           198: addresses the
        !           199: .IR n -th
        !           200: line of the buffer.
        !           201: .TP
        !           202: 4.
        !           203: `\(fm\fIx\fR' addresses the line marked with the name
        !           204: .IR x ,
        !           205: which must be a lower-case letter.
        !           206: Lines are marked with the
        !           207: .I k
        !           208: command described below.
        !           209: .TP
        !           210: 5.
        !           211: A regular expression enclosed in slashes `/' addresses
        !           212: the line found by searching forward from the current line
        !           213: and stopping at the first line containing a
        !           214: string that matches the regular expression.
        !           215: If necessary the search wraps around to the beginning of the
        !           216: buffer.
        !           217: .TP
        !           218: 6.
        !           219: A regular expression enclosed in queries `?' addresses
        !           220: the line found by searching backward from the current line
        !           221: and stopping at the first line containing
        !           222: a string that matches the regular expression.
        !           223: If necessary
        !           224: the search wraps around to the end of the buffer.
        !           225: .TP
        !           226: 7.
        !           227: An address followed by a plus sign `+'
        !           228: or a minus sign `\-' followed by a decimal number specifies that address plus
        !           229: (resp. minus)\| the indicated number of lines.
        !           230: The plus sign may be omitted.
        !           231: .TP
        !           232: 8.
        !           233: If an address begins with `+' or `\-'
        !           234: the addition or subtraction is taken with respect to the current line;
        !           235: e.g. `\-5' is understood to mean `\fB.\fR\-5'.
        !           236: .TP
        !           237: 9.
        !           238: If an address ends with `+' or `\-',
        !           239: then 1 is added (resp. subtracted).
        !           240: As a consequence of this rule and rule 8,
        !           241: the address `\-' refers to the line before the current line.
        !           242: Moreover,
        !           243: trailing
        !           244: `+' and `\-' characters
        !           245: have cumulative effect, so `\-\-' refers to the current
        !           246: line less 2.
        !           247: .TP
        !           248: 10.
        !           249: To maintain compatibility with earlier versions of the editor,
        !           250: the character `^' in addresses is 
        !           251: equivalent to `\-'.
        !           252: .PP
        !           253: Commands may require zero, one, or two addresses.
        !           254: Commands which require no addresses regard the presence
        !           255: of an address as an error.
        !           256: Commands which accept one or two addresses
        !           257: assume default addresses when insufficient are given.
        !           258: If more addresses are given than such a command requires,
        !           259: the last one or two (depending on what is accepted)\| are used.
        !           260: .PP
        !           261: Addresses are separated from each other typically by a comma
        !           262: `\fB,\fR'.
        !           263: They may also be separated by a semicolon
        !           264: `\fB;\fR'.
        !           265: In this case the current line `\fB.\fR' is set to
        !           266: the previous address before the next address is interpreted.
        !           267: This feature can be used to determine the starting
        !           268: line for forward and backward searches (`/', `?')\|.
        !           269: The second address of any two-address sequence
        !           270: must correspond to a line following the line corresponding to the first address.
        !           271: The special form `%'
        !           272: is an abbreviation for the address pair `1,$'.
        !           273: .PP
        !           274: In the following list of
        !           275: .I ed
        !           276: commands, the default addresses
        !           277: are shown in parentheses.
        !           278: The parentheses are not part of
        !           279: the address, but are used to show that the given addresses are
        !           280: the default.
        !           281: .PP
        !           282: As mentioned, it is generally illegal for more than one
        !           283: command to appear on a line.
        !           284: However, most commands may be suffixed by `p'
        !           285: or by `l', in which case
        !           286: the current line is either
        !           287: printed or listed respectively
        !           288: in the way discussed below.
        !           289: Commands may also be suffixed by `n',
        !           290: meaning the output of the command is to
        !           291: be line numbered.
        !           292: These suffixes may be combined in any order.
        !           293: .TP 5
        !           294: .RB (\| .\| )\|a
        !           295: .br
        !           296: .ns
        !           297: .TP 5
        !           298: <text>
        !           299: .br
        !           300: .ns
        !           301: .TP 5
        !           302: .B .
        !           303: .br
        !           304: The append command reads the given text
        !           305: and appends it after the addressed line.
        !           306: `\fB.\fR' is left
        !           307: on the last line input, if there
        !           308: were any, otherwise at the addressed line.
        !           309: Address `0' is legal for this command; text is placed
        !           310: at the beginning of the buffer.
        !           311: .TP 5
        !           312: .RB (\| .\| ,\  .\| )\|c
        !           313: .br
        !           314: .ns
        !           315: .TP 5
        !           316: <text>
        !           317: .br
        !           318: .ns
        !           319: .TP 5
        !           320: .B .
        !           321: .br
        !           322: The change
        !           323: command deletes the addressed lines, then accepts input
        !           324: text which replaces these lines.
        !           325: `\fB.\fR' is left at the last line input; if there were none,
        !           326: it is left at the line preceding the deleted lines.
        !           327: .TP 5
        !           328: .RB (\| .\| ,\  .\| )\|d
        !           329: The delete command deletes the addressed lines from the buffer.
        !           330: The line originally after the last line deleted becomes the current line;
        !           331: if the lines deleted were originally at the end,
        !           332: the new last line becomes the current line.
        !           333: .TP 5
        !           334: e filename
        !           335: The edit
        !           336: command causes the entire contents of the buffer to be deleted,
        !           337: and then the named file to be read in.
        !           338: `\fB.\fR' is set to the last line of the buffer.
        !           339: The number of characters read is typed.
        !           340: `filename' is remembered for possible use as a default file name
        !           341: in a subsequent
        !           342: .I r
        !           343: or
        !           344: .I w
        !           345: command.
        !           346: If `filename' is missing, the remembered name is used.
        !           347: .TP 5
        !           348: E filename
        !           349: This command is the same as
        !           350: .I e,
        !           351: except that no diagnostic results when no
        !           352: .I w
        !           353: has been given since the last buffer alteration.
        !           354: .TP 5
        !           355: f filename
        !           356: The filename command prints the currently remembered file name.
        !           357: If `filename' is given,
        !           358: the currently remembered file name is changed to `filename'.
        !           359: .TP 5
        !           360: (1,$)\|g/regular expression/command list
        !           361: In the global
        !           362: command, the first step is to mark every line which matches
        !           363: the given regular expression.
        !           364: Then for every such line, the
        !           365: given command list is executed with `\fB.\fR' initially set to that line.
        !           366: A single command or the first of multiple commands
        !           367: appears on the same line with the global command.
        !           368: All lines of a multi-line list except the last line must be ended with `\e'.
        !           369: .I A,
        !           370: .I i,
        !           371: and
        !           372: .I c
        !           373: commands and associated input are permitted;
        !           374: the `\fB.\fR' terminating input mode may be omitted if it would be on the
        !           375: last line of the command list.
        !           376: The commands
        !           377: .I g
        !           378: and
        !           379: .I v
        !           380: are not permitted in the command list.
        !           381: .TP 5
        !           382: .RB (\| .\| )\|i
        !           383: .ns
        !           384: .TP 5
        !           385: <text>
        !           386: .br
        !           387: .ns
        !           388: .TP 5
        !           389: .B .
        !           390: .br
        !           391: This command inserts the given text before the addressed line.
        !           392: `\fB.\fR' is left at the last line input, or, if there were none,
        !           393: at the line before the addressed line.
        !           394: This command differs from the
        !           395: .I a
        !           396: command only in the placement of the
        !           397: text.
        !           398: .TP 5
        !           399: .RB (\| .\| ,\  . +1)\|j
        !           400: This command joins the addressed lines into a single line;
        !           401: intermediate newlines simply disappear.
        !           402: `\fB.\fR' is left at the resulting line.
        !           403: .TP 5
        !           404: ( \fB. \fR)\|k\fIx\fR
        !           405: The mark command marks the addressed line with
        !           406: name
        !           407: .I x,
        !           408: which must be a lower-case letter.
        !           409: The address form `\(fm\fIx\fR' then addresses this line.
        !           410: .ne 2.5
        !           411: .TP 5
        !           412: .RB (\| .\| ,\  .\| )\|l
        !           413: The list command
        !           414: prints the addressed lines in an unambiguous way:
        !           415: non-graphic characters are
        !           416: printed in two-digit octal,
        !           417: and long lines are folded.
        !           418: The
        !           419: .I l
        !           420: command may be placed on the same line after any non-i/o
        !           421: command.
        !           422: .TP 5
        !           423: .RB (\| .\| ,\  .\| )\|m\fIa
        !           424: The move command repositions the addressed lines after the line
        !           425: addressed by
        !           426: .IR a .
        !           427: The last of the moved lines becomes the current line.
        !           428: .TP 5
        !           429: .RB (\| .\| ,\  .\| )\|p
        !           430: The print command prints the addressed lines.
        !           431: `\fB.\fR'
        !           432: is left at the last line printed.
        !           433: The
        !           434: .I p
        !           435: command
        !           436: may
        !           437: be placed on the same line after any non-i/o command.
        !           438: .TP
        !           439: .RB (\| .\| ,\  .\| )\|P
        !           440: This command is a synonym for
        !           441: .I p.
        !           442: .TP 5
        !           443: q
        !           444: The quit command causes
        !           445: .I ed
        !           446: to exit.
        !           447: No automatic write
        !           448: of a file is done.
        !           449: .TP 5
        !           450: Q
        !           451: This command is the same as
        !           452: .I q,
        !           453: except that no diagnostic results when no
        !           454: .I w
        !           455: has been given since the last buffer alteration.
        !           456: .TP 5
        !           457: ($)\|r filename
        !           458: The read command
        !           459: reads in the given file after the addressed line.
        !           460: If no file name is given,
        !           461: the remembered file name, if any, is used
        !           462: (see
        !           463: .I e
        !           464: and
        !           465: .I f
        !           466: commands)\|.
        !           467: The file name is remembered if there was no
        !           468: remembered file name already.
        !           469: Address `0' is legal for
        !           470: .I r
        !           471: and causes the
        !           472: file to be read at the beginning of the buffer.
        !           473: If the read is successful, the number of characters
        !           474: read is typed.
        !           475: `\fB.\fR' is left at the last line read in from the file.
        !           476: .TP 5
        !           477: (\| \fB.\fR\|, \fB.\fR\|)\|s/regular expression/replacement/       or,
        !           478: .br
        !           479: .ns
        !           480: .TP 5
        !           481: (\| \fB.\fR\|, \fB.\fR\|)\|s/regular expression/replacement/g
        !           482: The substitute command searches each addressed
        !           483: line for an occurrence of the specified regular expression.
        !           484: On each line in which a match is found,
        !           485: all matched strings are replaced by the replacement specified,
        !           486: if the global replacement indicator `g' appears after the command.
        !           487: If the global indicator does not appear, only the first occurrence
        !           488: of the matched string is replaced.
        !           489: It is an error for the substitution to fail on all addressed lines.
        !           490: Any punctuation character
        !           491: may be used instead of `/' to delimit the regular expression
        !           492: and the replacement.
        !           493: `\fB.\fR' is left at the last line substituted.
        !           494: .IP
        !           495: An ampersand `&' appearing in the replacement
        !           496: is replaced by the string matching the regular expression.
        !           497: The special meaning of `&' in this context may be
        !           498: suppressed by preceding it by `\e'.
        !           499: The characters
        !           500: .I `\|\en'
        !           501: where
        !           502: .I n
        !           503: is a digit,
        !           504: are replaced by the text matched by the
        !           505: .IR n -th
        !           506: regular subexpression
        !           507: enclosed between `\e(' and `\e)'.
        !           508: When
        !           509: nested, parenthesized subexpressions
        !           510: are present,
        !           511: .I n
        !           512: is determined by counting occurrences of `\e(' starting from the left.
        !           513: .IP
        !           514: Lines may be split by substituting new-line characters into them.
        !           515: The new-line in the
        !           516: replacement string
        !           517: must be escaped by preceding it by `\e'.
        !           518: .IP
        !           519: One or two trailing delimiters may be omitted,
        !           520: implying the `p' suffix.
        !           521: The special form `s' followed by
        !           522: .I no
        !           523: delimiters
        !           524: repeats the most recent substitute command
        !           525: on the addressed lines.
        !           526: The `s' may be followed by the letters
        !           527: .B r
        !           528: (use the most recent regular expression for the
        !           529: left hand side, instead of the most recent
        !           530: left hand side of a substitute command),
        !           531: .B p
        !           532: (complement the setting of the
        !           533: .I p
        !           534: suffix from the previous substitution), or
        !           535: .B g
        !           536: (complement the setting of the
        !           537: .I g
        !           538: suffix).
        !           539: These letters may be combined in any order.
        !           540: .TP 5
        !           541: .RB (\| .\| ,\  .\| )\|t\|\fIa
        !           542: This command acts just like the
        !           543: .I m
        !           544: command, except that a copy of the addressed lines is placed
        !           545: after address
        !           546: .I a
        !           547: (which may be 0).
        !           548: `\fB.\fR' is left on the last line of the copy.
        !           549: .TP 5
        !           550: .RB (\| .\| ,\  .\| )\|u
        !           551: The undo command restores the buffer to it's state
        !           552: before the most recent buffer modifying command.
        !           553: The current line is also restored.
        !           554: Buffer modifying commands are
        !           555: .I a, c, d, g, i, k, m, r, s, t,
        !           556: and
        !           557: .I v.
        !           558: For purposes of undo,
        !           559: .I g
        !           560: and
        !           561: .I v
        !           562: are considered to be a single buffer modifying command.
        !           563: Undo is its own inverse.
        !           564: .IP
        !           565: When
        !           566: .I ed
        !           567: runs out of memory
        !           568: (at about 8000 lines on any 16 bit mini-computer
        !           569: such as the PDP-11)
        !           570: This full undo is not possible, and
        !           571: .I u
        !           572: can only undo the effect of the most recent
        !           573: substitute on the current line.
        !           574: This restricted undo also applies to editor scripts
        !           575: when
        !           576: .I ed
        !           577: is invoked with the
        !           578: .B -
        !           579: option.
        !           580: .TP 5
        !           581: (1, $)\|v/regular expression/command list
        !           582: This command is the same as the global command
        !           583: .I g
        !           584: except that the command list is executed
        !           585: .I g
        !           586: with `\fB.\fR' initially set to every line
        !           587: .I except
        !           588: those
        !           589: matching the regular expression.
        !           590: .TP 5
        !           591: (1, $)\|w filename
        !           592: .br
        !           593: The write command writes the addressed lines onto
        !           594: the given file.
        !           595: If the file does not exist,
        !           596: it is created.
        !           597: The file name is remembered if there was no 
        !           598: remembered file name already.
        !           599: If no file name is given,
        !           600: the remembered file name, if any, is used
        !           601: (see
        !           602: .I e
        !           603: and
        !           604: .I f
        !           605: commands)\|.
        !           606: `\fB.\fR' is unchanged.
        !           607: If the command is successful, the number of characters written is
        !           608: printed.
        !           609: .TP
        !           610: (1, $)\|W filename
        !           611: This command is the same as
        !           612: .I w,
        !           613: except that the addressed lines are appended to the file.
        !           614: .TP 5
        !           615: (1, $)\|wq filename
        !           616: This command is the same as
        !           617: .I w
        !           618: except that afterwards a
        !           619: .I q
        !           620: command is done,
        !           621: exiting the editor
        !           622: after the file is written.
        !           623: .TP 5
        !           624: x
        !           625: A key string is demanded from the standard input.
        !           626: Later
        !           627: .I r, e
        !           628: and
        !           629: .I w
        !           630: commands will encrypt and decrypt the text 
        !           631: with this key by the algorithm of 
        !           632: .IR crypt (1).
        !           633: An explicitly empty key turns off encryption.
        !           634: .RB (\| .\| +1)\|z     or,
        !           635: .br
        !           636: .ns
        !           637: .TP 5
        !           638: .RB (\| .\| +1)\|z\fIn
        !           639: This command scrolls through the buffer starting at the addressed line.
        !           640: 22 (or
        !           641: .I n,
        !           642: if given)
        !           643: lines are printed.
        !           644: The last line printed becomes the current line.
        !           645: The value
        !           646: .I n
        !           647: is sticky, in that it becomes the default for
        !           648: future
        !           649: .I z
        !           650: commands.
        !           651: .TP 5
        !           652: ($)\|=
        !           653: The line number of the addressed line is typed.
        !           654: `\fB.\fR' is unchanged by this command.
        !           655: .TP 5
        !           656: !<shell command>
        !           657: The remainder of the line after the `!' is sent
        !           658: to
        !           659: .IR sh (1)
        !           660: to be interpreted as a command.
        !           661: .RB ` . '
        !           662: is unchanged.
        !           663: .TP 5
        !           664: .RB (\| . +1,\| . +1)\|<newline>
        !           665: An address alone on a line causes the addressed line to be printed.
        !           666: A blank line alone is equivalent to `.+1p'; it is useful
        !           667: for stepping through text.
        !           668: If two addresses are present with no
        !           669: intervening semicolon,
        !           670: .I ed
        !           671: prints the range of lines.
        !           672: If they are separated by a semicolon,
        !           673: the second line is printed.
        !           674: .PP
        !           675: If an interrupt signal (ASCII DEL)\| is sent,
        !           676: .I ed
        !           677: prints `?interrupted'
        !           678: and returns to its command level.
        !           679: .PP
        !           680: Some size limitations:
        !           681: 512 characters per line,
        !           682: 256 characters per global command list,
        !           683: 64 characters per file name,
        !           684: and, on mini computers,
        !           685: 128K characters in the temporary file.
        !           686: The limit on the number of lines depends on the amount of core:
        !           687: each line takes 2 words.
        !           688: .PP
        !           689: When reading a file,
        !           690: .I ed
        !           691: discards ASCII NUL characters
        !           692: and all characters after the last newline.
        !           693: It refuses to read files containing non-ASCII characters.
        !           694: .SH FILES
        !           695: /tmp/e*
        !           696: .br
        !           697: edhup: work is saved here if terminal hangs up
        !           698: .SH "SEE ALSO"
        !           699: B. W. Kernighan,
        !           700: .I
        !           701: A Tutorial Introduction to the ED Text Editor
        !           702: .br
        !           703: B. W. Kernighan,
        !           704: .I Advanced editing on UNIX
        !           705: .br
        !           706: ex(1), sed(1), crypt(1)
        !           707: .SH DIAGNOSTICS
        !           708: `?name' for inaccessible file;
        !           709: `?self-explanatory message'
        !           710: for other errors.
        !           711: .PP
        !           712: To protect against throwing away valuable work,
        !           713: a
        !           714: .I q
        !           715: or
        !           716: .I e
        !           717: command is considered to be in error, unless a
        !           718: .I w
        !           719: has occurred since the last buffer change.
        !           720: A second
        !           721: .I q
        !           722: or
        !           723: .I e
        !           724: will be obeyed regardless.
        !           725: .SH BUGS
        !           726: The 
        !           727: .I l
        !           728: command mishandles DEL.
        !           729: .br
        !           730: The
        !           731: .I undo
        !           732: command causes marks to be lost on affected lines.
        !           733: .br
        !           734: The
        !           735: .I x
        !           736: command,
        !           737: .B -x
        !           738: option,
        !           739: and
        !           740: special treatment of hangups
        !           741: only work on UNIX.

unix.superglobalmegacorp.com

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