BSD 4_4 development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Thu, 19 Aug 1993 10:10:48 +0000 (02:10 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Thu, 19 Aug 1993 10:10:48 +0000 (02:10 -0800)
Work on file usr/src/Foreign/man/ed.0
Work on file usr/share/man/cat3/ed.0

Synthesized-from: CSRG/cd3/4.4

usr/share/man/cat3/ed.0 [new file with mode: 0644]
usr/src/Foreign/man/ed.0 [new file with mode: 0644]

diff --git a/usr/share/man/cat3/ed.0 b/usr/share/man/cat3/ed.0
new file mode 100644 (file)
index 0000000..dd2ce06
--- /dev/null
@@ -0,0 +1,405 @@
+ED(1)                        BSD Reference Manual                        ED(1)
+
+N\bNA\bAM\bME\bE
+     e\bed\bd - text editor
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     e\bed\bd [-\b-] [_\bf_\bi_\bl_\be]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     E\bEd\bd once was the standard text editor in the early days of UNIX. While its
+     life as a line editor is dated, e\bed\bd still resides on systems produced by a
+     variety of vendors for good reason.  Because of its small size and sim-
+     plicity, e\bed\bd,\b, is found on the root partition (_\b/_\bb_\bi_\bn_\b/_\be_\bd) for emergency edit-
+     ing when normal system reboots fail or single user tasks are performed
+     and _\b/_\bu_\bs_\br is not mounted.  E\bEd\bd is also useful for script editing tasks, and
+     although there is nothing which can be done by e\bed\bd that cannot be per-
+     formed by sed(1),  ex(1) or _\bG_\bn_\bu _\bE_\bm_\ba_\bc_\bs, e\bed\bd remains the simplest and easi-
+     est to use.
+
+     If a _\bf_\bi_\bl_\be argument is given, e\bed\bd simulates an e\be command (see below) on the
+     named file; that is to say, the file is read into e\bed\bd's buffer so that it
+     can be edited.
+
+     Available options:
+
+     -\b-       Suppresses the printing of explanatory output and should be used
+             when the standard input is an editor script.
+
+     E\bEd\bd operates on a copy of any file it is editing; changes made in the copy
+     have no effect on the file until a w\bw (write) command is given.  The copy
+     of the text being edited resides in a temporary file called the _\bb_\bu_\bf_\bf_\be_\br.
+
+     Commands to e\bed\bd have a simple and regular structure: zero or more
+     _\ba_\bd_\bd_\br_\be_\bs_\bs_\be_\bs followed by a single character c\bco\bom\bmm\bma\ban\bnd\bd, possibly followed by
+     parameters to the command.  These addresses specify one or more lines in
+     the buffer.  Missing addresses are supplied by default.
+
+     In general, only one command may appear on a line.  Certain commands al-
+     low the addition of text to the buffer.  While e\bed\bd is accepting text, it
+     is said to be in _\bi_\bn_\bp_\bu_\bt _\bm_\bo_\bd_\be. In this mode, no commands are recognized;
+     all input is merely collected.  Input mode is left by typing a period `_\b.'
+     alone at the beginning of a line.
+
+     E\bEd\bd supports a limited form of _\br_\be_\bg_\bu_\bl_\ba_\br _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn notation.  A regular ex-
+     pression specifies a set of strings of characters.  A member of this set
+     of strings is said to be _\bm_\ba_\bt_\bc_\bh_\be_\bd by the regular expression.  In the fol-
+     lowing specification for regular expressions the word `character' means
+     any character but newline.
+
+     1.   Any character except a special character matches itself.  Special
+          characters are the regular expression delimiter plus `\[.' and some-
+          times `^*$'.
+
+     2.   A ``.'' matches any character.
+
+     3.   A `\' followed by any character except a digit or ( matches that
+          character.
+
+     4.   A nonempty string _\bs bracketed [_\bs] (or [_\b^_\bs]) matches any character in
+          (or not in) _\bs_\b. In _\bs_\b, `\' has no special meaning, and may only appear
+          as the first letter.  A substring _\ba_\b-_\bb, with _\ba and _\bb in ascending
+          ASCII order, stands for the inclusive range of ASCII characters.
+
+     5.   A regular expression of form 1-4 followed by `*' matches a sequence
+
+          of 0 or more matches of the regular expression.
+
+     6.   A regular expression, _\bx, of form 1-8, bracketed \( _\bx\) matches what
+          _\bx matches.
+
+     7.   A \ followed by a digit _\bn matches a copy of the string that the
+          bracketed regular expression beginning with the _\bnth \( matched.
+
+     8.   A regular expression of form 1-8, _\bx, followed by a regular expres-
+          sion of form 1-7, _\by matches a match for _\bx followed by a match for _\by,
+          with the _\bx match being as long as possible while still permitting a
+          _\by match.
+
+     9.   A regular expression of form 1-8 preceded by `^' (or followed by
+          `$'), is constrained to matches that begin at the left (or end at
+          the right) end of a line.
+
+     10.  A regular expression of form 1-9 picks out the longest among the
+          leftmost matches in a line.
+
+     11.  An empty regular expression stands for a copy of the last regular
+          expression encountered.
+
+     Regular expressions are used in addresses to specify lines and in one
+     command (see _\bs below) to specify a portion of a line which is to be re-
+     placed.  If it is desired to use one of the regular expression metachar-
+     acters as an ordinary character, that character may be preceded by `\'.
+     This also applies to the character bounding the regular expression (often
+     `/') and to `\' itself.
+
+     To understand addressing in e\bed\bd it is necessary to know that at any time
+     there is a _\bc_\bu_\br_\br_\be_\bn_\bt _\bl_\bi_\bn_\be_\b. Generally speaking, the current line is the last
+     line affected by a command; however, the exact effect on the current line
+     is discussed under the description of the command.  Addresses are con-
+     structed as follows.
+
+     1.   The character `_\b.' addresses the current line.
+
+     2.   The character `_\b$' addresses the last line of the buffer.
+
+     3.   A decimal number _\bn addresses the _\bnth line of the buffer.
+
+     4.   `'_\bx' addresses the line marked with the name _\bx, which must be a low-
+          er-case letter.  Lines are marked with the _\bk command described be-
+          low.
+
+     5.   A regular expression enclosed in slashes `/' addresses the line
+          found by searching forward from the current line and stopping at the
+          first line containing a string that matches the regular expression.
+          If necessary the search wraps around to the beginning of the buffer.
+
+     6.   A regular expression enclosed in queries `?' addresses the line
+          found by searching backward from the current line and stopping at
+          the first line containing a string that matches the regular expres-
+          sion.  If necessary the search wraps around to the end of the
+          buffer.
+
+     7.   An address followed by a plus sign `+' or a minus sign `-' followed
+          by a decimal number specifies that address plus (resp. minus) the
+          indicated number of lines.  The plus sign may be omitted.
+
+     8.   If an address begins with `+' or `-' the addition or subtraction is
+          taken with respect to the current line; e.g.  `-5' is understood to
+          mean `.-5'.
+
+     9.   If an address ends with `+' or `-' then 1 is added (resp. subtract-
+          ed).  As a consequence of this rule and rule 8, the address `-'
+          refers to the line before the current line.  Moreover, trailing `+'
+          and `-' characters have cumulative effect, so `--' refers to the
+          current line less 2.
+
+     10.  To maintain compatibility with earlier versions of the editor, the
+          character `^' in addresses is equivalent to `-'
+
+     Commands may require zero, one, or two addresses.  Commands which require
+     no addresses regard the presence of an address as an error.  Commands
+     which accept one or two addresses assume default addresses when insuffi-
+     cient are given.  If more addresses are given than such a command re-
+     quires, the last one or two (depending on what is accepted) are used.
+
+     Addresses are separated from each other typically by a comma `,' They may
+     also be separated by a semicolon `;' In this case the current line `.' is
+     set to the previous address before the next address is interpreted.  This
+     feature can be used to determine the starting line for forward and back-
+     ward searches (`/', `?') The second address of any two-address sequence
+     must correspond to a line following the line corresponding to the first
+     address.  The special form `%' is an abbreviation for the address pair
+     `1,$'.
+
+     In the following list of e\bed\bd commands, the default addresses are shown in
+     parentheses.  The parentheses are not part of the address, but are used
+     to show that the given addresses are the default.
+
+     As mentioned, it is generally illegal for more than one command to appear
+     on a line.  However, most commands may be suffixed by `p' or by `l', in
+     which case the current line is either printed or listed respectively in
+     the way discussed below.  Commands may also be suffixed by `n', meaning
+     the output of the command is to be line numbered.  These suffixes may be
+     combined in any order.
+
+     (_\b.)a\ba
+     <text>
+     .\b.
+           The append command reads the given text and appends it after the
+           addressed line.  `_\b.' is left on the last line input, if there were
+           any, otherwise at the addressed line.  Address `0' is legal for
+           this command; text is placed at the beginning of the buffer.
+
+     (_\b.,_\b.)c\bc
+     <text>
+     .\b.
+           The change command deletes the addressed lines, then accepts input
+           text which replaces these lines.  `_\b.' is left at the last line in-
+           put; if there were none, it is left at the line preceding the
+           deleted lines.
+
+     (_\b.,_\b.)d\bd
+     <text>
+     .\b.
+           The delete command deletes the addressed lines from the buffer.
+           The line originally after the last line deleted becomes the current
+           line; if the lines deleted were originally at the end, the new last
+           line becomes the current line.
+
+     e\be _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+           The edit command causes the entire contents of the buffer to be
+           deleted, and then the named file to be read in.  `_\b.' is set to the
+           last line of the buffer.  The number of characters read is typed.
+           _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is remembered for possible use as a default file name in a
+           subsequent r\br or w\bw command.  If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is missing, the remembered
+           name is used.
+
+
+     E\bE _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+           This command is the same as e\be, except that no diagnostic results
+           when no w\bw has been given since the last buffer alteration.
+
+     f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+           The filename command prints the currently remembered file name.  If
+           _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is given, the currently remembered file name is changed to
+           _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.
+
+     (_\b1,_\b$)g\bg_\b/_\br_\be_\bg_\bu_\bl_\ba_\br _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b/c\bco\bom\bmm\bma\ban\bnd\bd l\bli\bis\bst\bt
+           In the global command, the first step is to mark every line which
+           matches the given regular expression.  Then for every such line,
+           the given command list is executed with In the global command, the
+           first step is to mark every line which matches the given regular
+           expression.  Then for every such line, the given command list is
+           executed with `_\b.' initially set to that line.  A single command or
+           the first of multiple commands appears on the same line with the
+           global command.  All lines of a multi-line list except the last
+           line must be ended with `\\b\' A\bA, i\bi, and c\bc commands and associated in-
+           put are permitted; the `_\b.' terminating input mode may be omitted if
+           it would be on the last line of the command list.  The commands g\bg
+           and v\bv are not permitted in the command list.
+
+     (_\b.)i\bi
+     <text>
+     .\b.
+           This command inserts the given text before the addressed line.  `_\b.'
+           is left at the last line input, or, if there were none, at the line
+           before the addressed line.  This command differs from the a\ba command
+           only in the placement of the text.
+
+     (_\b.,_\b._\b+_\b1)j\bj
+           This command joins the addressed lines into a single line; interme-
+           diate newlines simply disappear.  `_\b.' is left at the resulting
+           line.
+
+     (_\b.)k\bk_\bx
+           The mark command marks the addressed line with name _\bx, which must
+           be a lower-case letter.  The address form _\b'_\bx then addresses this
+           line.
+
+     (_\b.,_\b.)l\bl
+           The list command prints the addressed lines in an unambiguous way:
+           non-graphic characters are printed in two-digit octal, and long
+           lines are folded.  The _\bl command may be placed on the same line af-
+           ter any non-i/o command.
+
+     (_\b.,_\b.)m\bm_\ba
+           The move command repositions the addressed lines after the line ad-
+           dressed by `_\ba'. The last of the moved lines becomes the current
+           line.
+
+     (_\b.,_\b.)p\bp
+           The print command prints the addressed lines.  `_\b.' is left at the
+           last line printed.  The p\bp command may be placed on the same line
+           after any non-i/o command.
+
+     (_\b.,_\b.)P\bP
+           This command is a synonym for p\bp.
+
+     q\bq     The quit command causes e\bed\bd to exit.  No automatic write of a file
+           is done.
+
+
+
+     Q\bQ     This command is the same as q\bq, except that no diagnostic results
+           when no w\bw has been given since the last buffer alteration.
+
+     (_\b$,_\b.)r\br _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+           The read command reads in the given file after the addressed line.
+           If no file name is given, the remembered file name, if any, is used
+           (see e\be and f\bf commands).  The file name is remembered if there was
+           no remembered file name already.  Address `0' is legal for r\br and
+           causes the file to be read at the beginning of the buffer.  If the
+           read is successful, the number of characters read is typed.  `_\b.' is
+           left at the last line read in from the file.
+
+     (_\b1,_\b$)g\bg_\b/_\br_\be_\bg_\bu_\bl_\ba_\br _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b/r\bre\bep\bpl\bla\bac\bce\bem\bme\ben\bnt\bt l\bli\bis\bst\bt   or,
+     (_\b1,_\b$)g\bg_\b/_\br_\be_\bg_\bu_\bl_\ba_\br _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b/r\bre\bep\bpl\bla\bac\bce\bem\bme\ben\bnt\bt l\bli\bis\bst\bt/\b/g\bg
+           The substitute command searches each addressed line for an occur-
+           rence of the specified regular expression.  On each line in which a
+           match is found, all matched strings are replaced by the replacement
+           specified, if the global replacement indicator g\bg appears after the
+           command.  If the global indicator does not appear, only the first
+           occurrence of the matched string is replaced.  It is an error for
+           the substitution to fail on all addressed lines.  Any punctuation
+           character may be used instead of `/\b/' to delimit the regular expres-
+           sion and the replacement.  `_\b.' is left at the last line substitut-
+           ed.  An ampersand `&\b&' appearing in the replacement is replaced by
+           the string matching the regular expression.  The special meaning of
+           `&\b&' in this context may be suppressed by preceding it by `\\b\' The
+           characters `\\b\_\bn' where _\bn is a digit, are replaced by the text
+           matched by the regular subexpression enclosed between _\bn`' and `\\b\)\b)'
+           When nested, parenthesized subexpressions are present, _\bn is deter-
+           mined by counting occurrences of `\\b\(\b(' starting from the left.
+           Lines may be split by substituting new-line characters into them.
+           The new-line in the replacement string must be escaped by preceding
+           it by `\\b\' One or two trailing delimiters may be omitted, implying
+           the p\bp suffix.  The special form s\bs followed by _\bn_\bo delimiters repeats
+           the most recent substitute command on the addressed lines.  The s\bs
+           may be followed by the letters r\br (use the most recent regular ex-
+           pression for the left hand side, instead of the most recent left
+           hand side of a substitute command), p\bp (complement the setting of
+           the p\bp suffix from the previous substitution), or g\bg (complement the
+           setting of the g\bg suffix).  These letters may be combined in any or-
+           der.
+
+     (_\b.,_\b.)t\bt_\ba
+           This command acts just like the m\bm command, except that a copy of
+           the addressed lines is placed after address _\ba (which may be 0).
+           `_\b.' is left on the last line of the copy.
+
+     (_\b.,_\b.)u\bu
+           The undo command restores the buffer to it's state before the most
+           recent buffer modifying command.  The current line is also re-
+           stored.  Buffer modifying commands are a\ba, c\bc, d\bd, g\bg, i\bi, k\bk, m\bm, r\br, s\bs,
+           t\bt, and v\bv. For purposes of undo, g\bg and v\bv are considered to be a sin-
+           gle buffer modifying command.  Undo is its own inverse.  When e\bed\bd
+           runs out of memory (at about 8000 lines on any 16 bit mini-computer
+           such as the PDP-11) This full undo is not possible, and u\bu can only
+           undo the effect of the most recent substitute on the current line.
+           This restricted undo also applies to editor scripts when e\bed\bd is in-
+           voked with the -\b- option.
+
+     (_\b1,_\b$)v\bv_\b/_\br_\be_\bg_\bu_\bl_\ba_\br _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b/c\bco\bom\bmm\bma\ban\bnd\bd l\bli\bis\bst\bt
+           This command is the same as the global command g\bg except that the
+           command list is executed g\bg with `_\b.' initially set to every line
+           _\be_\bx_\bc_\be_\bp_\bt those matching the regular expression.
+
+
+
+     (_\b1,_\b$)w\bw _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+           The write command writes the addressed lines onto the given file.
+           If the file does not exist, it is created.  The file name is remem-
+           bered if there was no remembered file name already.  If no file
+           name is given, the remembered file name, if any, is used (see e\be and
+           f\bf commands).  `_\b.' is unchanged.  If the command is successful, the
+           number of characters written is printed.
+
+     (_\b1,_\b$)W\bW _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+           This command is the same as w\bw, except that the addressed lines are
+           appended to the file.
+
+     (_\b1,_\b$)w\bwq\bq _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+           This command is the same as w\bw except that afterwards a q\bq command is
+           done, exiting the editor after the file is written.
+
+     (_\b._\b+_\b1)z\bz    or,
+     (_\b._\b+_\b1)z\bz_\bn
+           This command scrolls through the buffer starting at the addressed
+           line.  22 (or _\bn, if given) lines are printed.  The last line print-
+           ed becomes the current line.  The value _\bn is sticky, in that it be-
+           comes the default for future z\bz commands.
+
+     (_\b$)=\b=  The line number of the addressed line is typed.  `_\b.' is unchanged
+           by this command.
+
+     _\b!<shell command>
+           The remainder of the line after the `!\b!' is sent to sh(1) to be in-
+           terpreted as a command.  `_\b.' is unchanged.
+
+     (_\b._\b+_\b1,_\b._\b+_\b1)<newline>
+           An address alone on a line causes the addressed line to be printed.
+           A blank line alone is equivalent to _\b._\b+_\b1 it is useful for stepping
+           through text.  If two addresses are present with no intervening
+           semicolon, e\bed\bd prints the range of lines.  If they are separated by
+           a semicolon, the second line is printed.
+
+     If an interrupt signal (ASCII DEL) is sent, e\bed\bd prints `?interrupted' and
+     returns to its command level.
+
+     Some size limitations: 512 characters per line, 256 characters per global
+     command list, 64 characters per file name, and, on mini computers, 128K
+     characters in the temporary file.  The limit on the number of lines de-
+     pends on the amount of core: each line takes 2 words.
+
+     When reading a file, e\bed\bd discards ASCII NUL characters and all characters
+     after the last newline.  It refuses to read files containing non- ASCII
+     characters.
+
+F\bFI\bIL\bLE\bES\bS
+     /tmp/e*
+     edhup     work is saved here if terminal hangs up
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     ex(1),  sed(1),  crypt(1)
+     B. W. Kernighan, _\bA _\bT_\bu_\bt_\bo_\br_\bi_\ba_\bl _\bI_\bn_\bt_\br_\bo_\bd_\bu_\bc_\bt_\bi_\bo_\bn _\bt_\bo _\bt_\bh_\be _\bE_\bD _\bT_\be_\bx_\bt _\bE_\bd_\bi_\bt_\bo_\br
+     B. W. Kernighan, _\bA_\bd_\bv_\ba_\bn_\bc_\be_\bd _\be_\bd_\bi_\bt_\bi_\bn_\bg _\bo_\bn _\bU_\bN_\bI_\bX
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     The e\bed\bd command appeared in
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+     `name' for inaccessible file; `?self-explanatory message' for other er-
+     rors.
+
+
+     To protect against throwing away valuable work, a q\bq or e\be command is con-
+     sidered to be in error, unless a w\bw has occurred since the last buffer
+     change.  A second q\bq or e\be will be obeyed regardless.
+
+B\bBU\bUG\bGS\bS
+     The l\bl command mishandles DEL.
+     The u\bun\bnd\bdo\bo command causes marks to be lost on affected lines.
+     The special treatment of hangups only works on UNIX.
+
+AT&T 7th Edition                August 19, 1993                              7
diff --git a/usr/src/Foreign/man/ed.0 b/usr/src/Foreign/man/ed.0
new file mode 100644 (file)
index 0000000..dd2ce06
--- /dev/null
@@ -0,0 +1,405 @@
+ED(1)                        BSD Reference Manual                        ED(1)
+
+N\bNA\bAM\bME\bE
+     e\bed\bd - text editor
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     e\bed\bd [-\b-] [_\bf_\bi_\bl_\be]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     E\bEd\bd once was the standard text editor in the early days of UNIX. While its
+     life as a line editor is dated, e\bed\bd still resides on systems produced by a
+     variety of vendors for good reason.  Because of its small size and sim-
+     plicity, e\bed\bd,\b, is found on the root partition (_\b/_\bb_\bi_\bn_\b/_\be_\bd) for emergency edit-
+     ing when normal system reboots fail or single user tasks are performed
+     and _\b/_\bu_\bs_\br is not mounted.  E\bEd\bd is also useful for script editing tasks, and
+     although there is nothing which can be done by e\bed\bd that cannot be per-
+     formed by sed(1),  ex(1) or _\bG_\bn_\bu _\bE_\bm_\ba_\bc_\bs, e\bed\bd remains the simplest and easi-
+     est to use.
+
+     If a _\bf_\bi_\bl_\be argument is given, e\bed\bd simulates an e\be command (see below) on the
+     named file; that is to say, the file is read into e\bed\bd's buffer so that it
+     can be edited.
+
+     Available options:
+
+     -\b-       Suppresses the printing of explanatory output and should be used
+             when the standard input is an editor script.
+
+     E\bEd\bd operates on a copy of any file it is editing; changes made in the copy
+     have no effect on the file until a w\bw (write) command is given.  The copy
+     of the text being edited resides in a temporary file called the _\bb_\bu_\bf_\bf_\be_\br.
+
+     Commands to e\bed\bd have a simple and regular structure: zero or more
+     _\ba_\bd_\bd_\br_\be_\bs_\bs_\be_\bs followed by a single character c\bco\bom\bmm\bma\ban\bnd\bd, possibly followed by
+     parameters to the command.  These addresses specify one or more lines in
+     the buffer.  Missing addresses are supplied by default.
+
+     In general, only one command may appear on a line.  Certain commands al-
+     low the addition of text to the buffer.  While e\bed\bd is accepting text, it
+     is said to be in _\bi_\bn_\bp_\bu_\bt _\bm_\bo_\bd_\be. In this mode, no commands are recognized;
+     all input is merely collected.  Input mode is left by typing a period `_\b.'
+     alone at the beginning of a line.
+
+     E\bEd\bd supports a limited form of _\br_\be_\bg_\bu_\bl_\ba_\br _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn notation.  A regular ex-
+     pression specifies a set of strings of characters.  A member of this set
+     of strings is said to be _\bm_\ba_\bt_\bc_\bh_\be_\bd by the regular expression.  In the fol-
+     lowing specification for regular expressions the word `character' means
+     any character but newline.
+
+     1.   Any character except a special character matches itself.  Special
+          characters are the regular expression delimiter plus `\[.' and some-
+          times `^*$'.
+
+     2.   A ``.'' matches any character.
+
+     3.   A `\' followed by any character except a digit or ( matches that
+          character.
+
+     4.   A nonempty string _\bs bracketed [_\bs] (or [_\b^_\bs]) matches any character in
+          (or not in) _\bs_\b. In _\bs_\b, `\' has no special meaning, and may only appear
+          as the first letter.  A substring _\ba_\b-_\bb, with _\ba and _\bb in ascending
+          ASCII order, stands for the inclusive range of ASCII characters.
+
+     5.   A regular expression of form 1-4 followed by `*' matches a sequence
+
+          of 0 or more matches of the regular expression.
+
+     6.   A regular expression, _\bx, of form 1-8, bracketed \( _\bx\) matches what
+          _\bx matches.
+
+     7.   A \ followed by a digit _\bn matches a copy of the string that the
+          bracketed regular expression beginning with the _\bnth \( matched.
+
+     8.   A regular expression of form 1-8, _\bx, followed by a regular expres-
+          sion of form 1-7, _\by matches a match for _\bx followed by a match for _\by,
+          with the _\bx match being as long as possible while still permitting a
+          _\by match.
+
+     9.   A regular expression of form 1-8 preceded by `^' (or followed by
+          `$'), is constrained to matches that begin at the left (or end at
+          the right) end of a line.
+
+     10.  A regular expression of form 1-9 picks out the longest among the
+          leftmost matches in a line.
+
+     11.  An empty regular expression stands for a copy of the last regular
+          expression encountered.
+
+     Regular expressions are used in addresses to specify lines and in one
+     command (see _\bs below) to specify a portion of a line which is to be re-
+     placed.  If it is desired to use one of the regular expression metachar-
+     acters as an ordinary character, that character may be preceded by `\'.
+     This also applies to the character bounding the regular expression (often
+     `/') and to `\' itself.
+
+     To understand addressing in e\bed\bd it is necessary to know that at any time
+     there is a _\bc_\bu_\br_\br_\be_\bn_\bt _\bl_\bi_\bn_\be_\b. Generally speaking, the current line is the last
+     line affected by a command; however, the exact effect on the current line
+     is discussed under the description of the command.  Addresses are con-
+     structed as follows.
+
+     1.   The character `_\b.' addresses the current line.
+
+     2.   The character `_\b$' addresses the last line of the buffer.
+
+     3.   A decimal number _\bn addresses the _\bnth line of the buffer.
+
+     4.   `'_\bx' addresses the line marked with the name _\bx, which must be a low-
+          er-case letter.  Lines are marked with the _\bk command described be-
+          low.
+
+     5.   A regular expression enclosed in slashes `/' addresses the line
+          found by searching forward from the current line and stopping at the
+          first line containing a string that matches the regular expression.
+          If necessary the search wraps around to the beginning of the buffer.
+
+     6.   A regular expression enclosed in queries `?' addresses the line
+          found by searching backward from the current line and stopping at
+          the first line containing a string that matches the regular expres-
+          sion.  If necessary the search wraps around to the end of the
+          buffer.
+
+     7.   An address followed by a plus sign `+' or a minus sign `-' followed
+          by a decimal number specifies that address plus (resp. minus) the
+          indicated number of lines.  The plus sign may be omitted.
+
+     8.   If an address begins with `+' or `-' the addition or subtraction is
+          taken with respect to the current line; e.g.  `-5' is understood to
+          mean `.-5'.
+
+     9.   If an address ends with `+' or `-' then 1 is added (resp. subtract-
+          ed).  As a consequence of this rule and rule 8, the address `-'
+          refers to the line before the current line.  Moreover, trailing `+'
+          and `-' characters have cumulative effect, so `--' refers to the
+          current line less 2.
+
+     10.  To maintain compatibility with earlier versions of the editor, the
+          character `^' in addresses is equivalent to `-'
+
+     Commands may require zero, one, or two addresses.  Commands which require
+     no addresses regard the presence of an address as an error.  Commands
+     which accept one or two addresses assume default addresses when insuffi-
+     cient are given.  If more addresses are given than such a command re-
+     quires, the last one or two (depending on what is accepted) are used.
+
+     Addresses are separated from each other typically by a comma `,' They may
+     also be separated by a semicolon `;' In this case the current line `.' is
+     set to the previous address before the next address is interpreted.  This
+     feature can be used to determine the starting line for forward and back-
+     ward searches (`/', `?') The second address of any two-address sequence
+     must correspond to a line following the line corresponding to the first
+     address.  The special form `%' is an abbreviation for the address pair
+     `1,$'.
+
+     In the following list of e\bed\bd commands, the default addresses are shown in
+     parentheses.  The parentheses are not part of the address, but are used
+     to show that the given addresses are the default.
+
+     As mentioned, it is generally illegal for more than one command to appear
+     on a line.  However, most commands may be suffixed by `p' or by `l', in
+     which case the current line is either printed or listed respectively in
+     the way discussed below.  Commands may also be suffixed by `n', meaning
+     the output of the command is to be line numbered.  These suffixes may be
+     combined in any order.
+
+     (_\b.)a\ba
+     <text>
+     .\b.
+           The append command reads the given text and appends it after the
+           addressed line.  `_\b.' is left on the last line input, if there were
+           any, otherwise at the addressed line.  Address `0' is legal for
+           this command; text is placed at the beginning of the buffer.
+
+     (_\b.,_\b.)c\bc
+     <text>
+     .\b.
+           The change command deletes the addressed lines, then accepts input
+           text which replaces these lines.  `_\b.' is left at the last line in-
+           put; if there were none, it is left at the line preceding the
+           deleted lines.
+
+     (_\b.,_\b.)d\bd
+     <text>
+     .\b.
+           The delete command deletes the addressed lines from the buffer.
+           The line originally after the last line deleted becomes the current
+           line; if the lines deleted were originally at the end, the new last
+           line becomes the current line.
+
+     e\be _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+           The edit command causes the entire contents of the buffer to be
+           deleted, and then the named file to be read in.  `_\b.' is set to the
+           last line of the buffer.  The number of characters read is typed.
+           _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is remembered for possible use as a default file name in a
+           subsequent r\br or w\bw command.  If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is missing, the remembered
+           name is used.
+
+
+     E\bE _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+           This command is the same as e\be, except that no diagnostic results
+           when no w\bw has been given since the last buffer alteration.
+
+     f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+           The filename command prints the currently remembered file name.  If
+           _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is given, the currently remembered file name is changed to
+           _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.
+
+     (_\b1,_\b$)g\bg_\b/_\br_\be_\bg_\bu_\bl_\ba_\br _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b/c\bco\bom\bmm\bma\ban\bnd\bd l\bli\bis\bst\bt
+           In the global command, the first step is to mark every line which
+           matches the given regular expression.  Then for every such line,
+           the given command list is executed with In the global command, the
+           first step is to mark every line which matches the given regular
+           expression.  Then for every such line, the given command list is
+           executed with `_\b.' initially set to that line.  A single command or
+           the first of multiple commands appears on the same line with the
+           global command.  All lines of a multi-line list except the last
+           line must be ended with `\\b\' A\bA, i\bi, and c\bc commands and associated in-
+           put are permitted; the `_\b.' terminating input mode may be omitted if
+           it would be on the last line of the command list.  The commands g\bg
+           and v\bv are not permitted in the command list.
+
+     (_\b.)i\bi
+     <text>
+     .\b.
+           This command inserts the given text before the addressed line.  `_\b.'
+           is left at the last line input, or, if there were none, at the line
+           before the addressed line.  This command differs from the a\ba command
+           only in the placement of the text.
+
+     (_\b.,_\b._\b+_\b1)j\bj
+           This command joins the addressed lines into a single line; interme-
+           diate newlines simply disappear.  `_\b.' is left at the resulting
+           line.
+
+     (_\b.)k\bk_\bx
+           The mark command marks the addressed line with name _\bx, which must
+           be a lower-case letter.  The address form _\b'_\bx then addresses this
+           line.
+
+     (_\b.,_\b.)l\bl
+           The list command prints the addressed lines in an unambiguous way:
+           non-graphic characters are printed in two-digit octal, and long
+           lines are folded.  The _\bl command may be placed on the same line af-
+           ter any non-i/o command.
+
+     (_\b.,_\b.)m\bm_\ba
+           The move command repositions the addressed lines after the line ad-
+           dressed by `_\ba'. The last of the moved lines becomes the current
+           line.
+
+     (_\b.,_\b.)p\bp
+           The print command prints the addressed lines.  `_\b.' is left at the
+           last line printed.  The p\bp command may be placed on the same line
+           after any non-i/o command.
+
+     (_\b.,_\b.)P\bP
+           This command is a synonym for p\bp.
+
+     q\bq     The quit command causes e\bed\bd to exit.  No automatic write of a file
+           is done.
+
+
+
+     Q\bQ     This command is the same as q\bq, except that no diagnostic results
+           when no w\bw has been given since the last buffer alteration.
+
+     (_\b$,_\b.)r\br _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+           The read command reads in the given file after the addressed line.
+           If no file name is given, the remembered file name, if any, is used
+           (see e\be and f\bf commands).  The file name is remembered if there was
+           no remembered file name already.  Address `0' is legal for r\br and
+           causes the file to be read at the beginning of the buffer.  If the
+           read is successful, the number of characters read is typed.  `_\b.' is
+           left at the last line read in from the file.
+
+     (_\b1,_\b$)g\bg_\b/_\br_\be_\bg_\bu_\bl_\ba_\br _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b/r\bre\bep\bpl\bla\bac\bce\bem\bme\ben\bnt\bt l\bli\bis\bst\bt   or,
+     (_\b1,_\b$)g\bg_\b/_\br_\be_\bg_\bu_\bl_\ba_\br _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b/r\bre\bep\bpl\bla\bac\bce\bem\bme\ben\bnt\bt l\bli\bis\bst\bt/\b/g\bg
+           The substitute command searches each addressed line for an occur-
+           rence of the specified regular expression.  On each line in which a
+           match is found, all matched strings are replaced by the replacement
+           specified, if the global replacement indicator g\bg appears after the
+           command.  If the global indicator does not appear, only the first
+           occurrence of the matched string is replaced.  It is an error for
+           the substitution to fail on all addressed lines.  Any punctuation
+           character may be used instead of `/\b/' to delimit the regular expres-
+           sion and the replacement.  `_\b.' is left at the last line substitut-
+           ed.  An ampersand `&\b&' appearing in the replacement is replaced by
+           the string matching the regular expression.  The special meaning of
+           `&\b&' in this context may be suppressed by preceding it by `\\b\' The
+           characters `\\b\_\bn' where _\bn is a digit, are replaced by the text
+           matched by the regular subexpression enclosed between _\bn`' and `\\b\)\b)'
+           When nested, parenthesized subexpressions are present, _\bn is deter-
+           mined by counting occurrences of `\\b\(\b(' starting from the left.
+           Lines may be split by substituting new-line characters into them.
+           The new-line in the replacement string must be escaped by preceding
+           it by `\\b\' One or two trailing delimiters may be omitted, implying
+           the p\bp suffix.  The special form s\bs followed by _\bn_\bo delimiters repeats
+           the most recent substitute command on the addressed lines.  The s\bs
+           may be followed by the letters r\br (use the most recent regular ex-
+           pression for the left hand side, instead of the most recent left
+           hand side of a substitute command), p\bp (complement the setting of
+           the p\bp suffix from the previous substitution), or g\bg (complement the
+           setting of the g\bg suffix).  These letters may be combined in any or-
+           der.
+
+     (_\b.,_\b.)t\bt_\ba
+           This command acts just like the m\bm command, except that a copy of
+           the addressed lines is placed after address _\ba (which may be 0).
+           `_\b.' is left on the last line of the copy.
+
+     (_\b.,_\b.)u\bu
+           The undo command restores the buffer to it's state before the most
+           recent buffer modifying command.  The current line is also re-
+           stored.  Buffer modifying commands are a\ba, c\bc, d\bd, g\bg, i\bi, k\bk, m\bm, r\br, s\bs,
+           t\bt, and v\bv. For purposes of undo, g\bg and v\bv are considered to be a sin-
+           gle buffer modifying command.  Undo is its own inverse.  When e\bed\bd
+           runs out of memory (at about 8000 lines on any 16 bit mini-computer
+           such as the PDP-11) This full undo is not possible, and u\bu can only
+           undo the effect of the most recent substitute on the current line.
+           This restricted undo also applies to editor scripts when e\bed\bd is in-
+           voked with the -\b- option.
+
+     (_\b1,_\b$)v\bv_\b/_\br_\be_\bg_\bu_\bl_\ba_\br _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b/c\bco\bom\bmm\bma\ban\bnd\bd l\bli\bis\bst\bt
+           This command is the same as the global command g\bg except that the
+           command list is executed g\bg with `_\b.' initially set to every line
+           _\be_\bx_\bc_\be_\bp_\bt those matching the regular expression.
+
+
+
+     (_\b1,_\b$)w\bw _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+           The write command writes the addressed lines onto the given file.
+           If the file does not exist, it is created.  The file name is remem-
+           bered if there was no remembered file name already.  If no file
+           name is given, the remembered file name, if any, is used (see e\be and
+           f\bf commands).  `_\b.' is unchanged.  If the command is successful, the
+           number of characters written is printed.
+
+     (_\b1,_\b$)W\bW _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+           This command is the same as w\bw, except that the addressed lines are
+           appended to the file.
+
+     (_\b1,_\b$)w\bwq\bq _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+           This command is the same as w\bw except that afterwards a q\bq command is
+           done, exiting the editor after the file is written.
+
+     (_\b._\b+_\b1)z\bz    or,
+     (_\b._\b+_\b1)z\bz_\bn
+           This command scrolls through the buffer starting at the addressed
+           line.  22 (or _\bn, if given) lines are printed.  The last line print-
+           ed becomes the current line.  The value _\bn is sticky, in that it be-
+           comes the default for future z\bz commands.
+
+     (_\b$)=\b=  The line number of the addressed line is typed.  `_\b.' is unchanged
+           by this command.
+
+     _\b!<shell command>
+           The remainder of the line after the `!\b!' is sent to sh(1) to be in-
+           terpreted as a command.  `_\b.' is unchanged.
+
+     (_\b._\b+_\b1,_\b._\b+_\b1)<newline>
+           An address alone on a line causes the addressed line to be printed.
+           A blank line alone is equivalent to _\b._\b+_\b1 it is useful for stepping
+           through text.  If two addresses are present with no intervening
+           semicolon, e\bed\bd prints the range of lines.  If they are separated by
+           a semicolon, the second line is printed.
+
+     If an interrupt signal (ASCII DEL) is sent, e\bed\bd prints `?interrupted' and
+     returns to its command level.
+
+     Some size limitations: 512 characters per line, 256 characters per global
+     command list, 64 characters per file name, and, on mini computers, 128K
+     characters in the temporary file.  The limit on the number of lines de-
+     pends on the amount of core: each line takes 2 words.
+
+     When reading a file, e\bed\bd discards ASCII NUL characters and all characters
+     after the last newline.  It refuses to read files containing non- ASCII
+     characters.
+
+F\bFI\bIL\bLE\bES\bS
+     /tmp/e*
+     edhup     work is saved here if terminal hangs up
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     ex(1),  sed(1),  crypt(1)
+     B. W. Kernighan, _\bA _\bT_\bu_\bt_\bo_\br_\bi_\ba_\bl _\bI_\bn_\bt_\br_\bo_\bd_\bu_\bc_\bt_\bi_\bo_\bn _\bt_\bo _\bt_\bh_\be _\bE_\bD _\bT_\be_\bx_\bt _\bE_\bd_\bi_\bt_\bo_\br
+     B. W. Kernighan, _\bA_\bd_\bv_\ba_\bn_\bc_\be_\bd _\be_\bd_\bi_\bt_\bi_\bn_\bg _\bo_\bn _\bU_\bN_\bI_\bX
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     The e\bed\bd command appeared in
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+     `name' for inaccessible file; `?self-explanatory message' for other er-
+     rors.
+
+
+     To protect against throwing away valuable work, a q\bq or e\be command is con-
+     sidered to be in error, unless a w\bw has occurred since the last buffer
+     change.  A second q\bq or e\be will be obeyed regardless.
+
+B\bBU\bUG\bGS\bS
+     The l\bl command mishandles DEL.
+     The u\bun\bnd\bdo\bo command causes marks to be lost on affected lines.
+     The special treatment of hangups only works on UNIX.
+
+AT&T 7th Edition                August 19, 1993                              7