Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ xed(1) — Ultrix-32 2.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ed(1)

edit(1)

eed(1)

ex(1)

umask(2)

vi(1)

XED(1)

NAME

xed − eXtended text EDitor − V7.15

SYNOPSIS

xed [ −!@abBcdefhiklmnoOpqrstvwy ] [ name ]

DESCRIPTION

Xed is the eXtended text EDitor. 

If a name argument is given, xed simulates an e command (see below) on the named file; that is to say, the file is read into xed’s buffer so that it can be edited. After every 35 (default) commands have been executed, the edit buffer will be written on a scratch file. When xed terminates successfully, the save file will be removed unless the −d flag was selected.  If a writeable file named “ edsav ” exists in the current directory, all commands typed will be written to it. 

The optional flags after the − have the following functions:

−!  Disallow use of the !  command.  Mostly useful for writing programs which cannot allow unrestricted access to shell commands. 

−@fn Preset the indirect file name to fn. Subsequent use of the @ command will read commands from fn, until the name is changed by giving an argument to the @ command. 

−a The line numbers will be printed in apl mode.  The form is “[ n ]\t” followed by the text.  In addition, overstruck characters will be printed on two lines, one above the other.  Apl line numbers begin at zero instead of one. 

−b Make a backup copy of the edit file upon entry to the editor.  The file’s name will be that of the original file with a “ .bak ” extension. 

−Bnnnn
Set the line buffer size to nnnn (decimal) bytes.  The default line buffer size is 512 bytes, which limits the maximum length line which may be processed.  Since there are occasions where it is desired to process longer lines, the buffer size may be increased. 

−cnn Set the editor’s idea of the depth of the Crt screen for the : command to nn (decimal).  Default is 21 lines.  If nn is zero, the paging will be disabled.  (See also the d=nn command.) 

−d Disables the deletion of the file created via the auto-save feature.  (The “ .edt ” file.) 

−e Each input command will be echoed on standard output.  This is useful for debugging editor command files, since the error message will be immediately preceded by the command that caused it. 

−f Xed will automatically prompt for text lines upon being invoked.  Upon exit, xed will automatically write the file.  This is useful for creating files without having to type the a command upon entry.  Note: If this flag is selected, the editor will over-write an existing file by the same name.  See the qi command. 

−h Enable processing of a “ huge ” file, I.E. one with up to 511 blocks, instead of the normal limit of 255 blocks.  The use of −h disallows the g and v commands.  (This flag is inoperative and unnecessary on the Vax.) 

−i If an interrupt (ASCII DEL) character is typed, xed will write the current contents of the edit buffer on a file, and exit.  The name of the dump file is that of the original file with a .int extension.  The −i flag is very useful for shell files which call the editor, since the editor will not hang around after an interrupt, interfering with the user’s commands. 

−k Useful for slow terminals, this flag kills verbose error messages.  Instead, xed prints a query ?  followed by an error number. The actual error message may be obtained by typing the enn command (see below).  The long error messages may be turned on/off via the e+ and e− commands (see below). 

−lc The eol character is initialized to character c. It may be changed during the edit session by the e=c command. 

−mnn
The modification count before an automatic save of the edit buffer is set to nn (decimal).  Default is 35.  (That is, after every 35 commands which cause a modification to one or more lines, the edit buffer will be written on the edit file name with .edt extension.)  If the count is zero, the auto-save feature is disabled. 

−n The no-line-numbers flag is toggled.  This results in the omission of line number prompts as well as line numbers on the p and l commands. 

−o The editor will not seek standard input to end-of-file upon detecting a command error.  Normally, this results in a command file terminating immediately. 

−O If a write is attempted to a file that is write-locked, but is owned by the user, an attempt will be made to override the permission. 

−p Turn on prompts even if not talking to a terminal, mostly useful for editing through pipes (as when using protocol(1) or script(1)).

−q The editor will NOT ignore a quit (ASCII FS or ctrl- \ ) signal.  Normally for editor debugging purposes, as a core dump can then be made. 
Beware, the edit buffer can not be recovered! 

−r Removes the special meaning of the special characters: $ & \( \) [ .  * ^ \

−s Silent mode.  No prompts are issued, printing of lines resulting from commands is suppressed unless they are explicitly terminated with a p.  This mode is useful for running editor command files. 

−tc Set the tab character to c. This is the character which will be expanded to the appropriate number of fill characters to get to the next column which has a tab stop set in it. The tab character may be set/changed using the t=c command. 

−vc Set the tab fill character to c. This character is used to pad out the space between expanded fields. The tab fill character may be set/changed by the f=c command. 

−wnn Set the editor’s idea of the page width to nn (decimal).  Default is 80 columns.  (See also the w=nn command.) 

−y Set the interrupt processing to list out one page (see the : command) upon receipt of an interrupt. 

−/
0
123456789
A decimal number preceded by a − will set a tab stop in that column.  Tab settings may be made during edit session by the t,nn command. 

−, A comma in the flag list is ignored to facilitate setting multiple tab stops.  For example, tabs may be set by any of the forms “−9 −17 −25”, “−9,17,25”, “−9a17d25f”. 

Xed operates on a copy of any file it is editing; changes made in the copy have no effect on the file until a w (write) command is given.  The copy of the text being edited resides in a temporary file called the buffer.  There is only one buffer. 

Commands to xed have a simple and regular structure: zero or more addresses followed by a one or more character command, possibly followed by parameters to the command.  These addresses specify one or more lines in the buffer.  Every command which requires addresses has default addresses, so that the addresses can often be omitted. 

In general, only one command may appear on a line.  (See the e=c command and the −l flag.)  Certain commands allow the input of text.  This text is placed in the appropriate place in the buffer.  While xed is accepting text, it is said to be in input mode. In this mode, no commands are recognized; all input is merely collected. Input mode is left by typing a period .  alone at the beginning of a line, or by receipt of an end-of-file (Ctrl-D) from the keyboard. 

Xed supports a limited form of regular expression notation.  A regular expression specifies a set of strings of characters.  A member of this set of strings is said to be matched by the regular expression.  The regular expressions allowed by xed are constructed as follows: In the following 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 sometimes ^ * $. 

2.A .  matches any character. 

3.A \ followed by any character except a digit or ( ) matches that character. 

4.A nonempty string s bracketed [ s ] (or [^ s ]) matches any character in (or not in) s. In s, \ has no special meaning, and ] may only appear as the first letter.  A substring a − b, with a and b 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 zero or more matches of the regular expression. 

6.A regular expression, x, of form 1-8, bracketed \( x \) matches what x matches, with side-effects described under the s command below. 

7.A \ followed by a digit n matches a copy of the string that the bracketed regular expression beginning with the nth \( matched. 

8.A regular expression of form 1-8, x, followed by a regular expression of form 1-7, y matches a match for x followed by a match for y, with the x match being as long as possible while still permitting a y 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 s below) to specify a portion of a line which is to be replaced.  If it is desired to use one of the regular expression metacharacters 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 xed it is necessary to know that at any time there is a current line. 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 constructed as follows.

1.The character .  addresses the current line. 

2.The character $ addresses the last line of the buffer. 

3.A decimal number n addresses the n-th line of the buffer.

4.´x addresses the line (or lines) marked with the mark name character x, which must be a lower-case letter. An alternative to this syntax is the capital letter alone. Lines are marked with the k command described below. 

5.´ x^ (or X^ ) addresses the first (lower) line of the range marked with the mark name character x. (See the k command description.) 

6.´ x$ (or X$ ) addresses the last (upper) line of the range marked with the mark name character x. (See the k command description.) 

7.A regular expression enclosed in slashes / addresses the first line found by searching toward the end of the buffer and stopping at the first line containing a string matching the regular expression.  If necessary the search wraps around to the beginning of the buffer. 

8.A regular expression enclosed in queries ?  addresses the first line found by searching toward the beginning of the buffer and stopping at the first line containing a string matching the regular expression.  If necessary the search wraps around to the end of the buffer. 

9.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. 

10.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.  (If the first address is omitted, but a second bound is specified, then the first address will be the current line plus one.  e.g. “ ,+10 ” is equivalent to “ .+1,.+10 ”.) 

11.If an address ends with + or −, then 1 is added (resp. subtracted).  As a consequence of this rule and rule 10, 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.  (There are complications of this rule, see the b command below.) 

12.To maintain compatibility with earlier versions of the editor, the character ^ in addresses is entirely equivalent to −. 

13.The character = specifies that the address bounds of the previous command are to be used for the current command. 

14.The character pair =^ addresses the lower bound (first address) specified in the previous command. 

15.The character pair =$ addresses the upper bound (second address) specified in the previous command. 

16.The character pair ..  addresses the last value of .  different from the current value of ..

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 insufficient are given.  If more addresses are given than such a command requires, 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 first address before the next address is interpreted.  The second address of any two-address sequence must correspond to a line following the line corresponding to the first address. 

In the following list of xed 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, b, q or l, in which case the current line is either printed (as in the p command), listed with balanced pairs of parentheses, square brackets, and brace brackets numbered ( b), quoted (by " or ´) string lengths ( q), or listed as in the l command. 

( .  ) a

text

. 
The append command reads the given text and appends it after the addressed line.  .  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. 

( .  ) a text
If a space immediately follows the append command, then the text immediately following the space is appended after the addressed line.  .  is left at the newly created line.  This is essentially a quick method for entering one line. 

( .  , .  ) a/text /
Append the text after the last character in the addressed lines.

bnn
The browse count is set to nn (decimal).  This count is then used for subsequent new-line commands as the number of lines to be printed out.  If nn is missing, the count is reset to 1.  In constructing addresses as described in rule 11 above, the browse count is added to or subtracted from the current address, instead of a constant of 1 for each + or −.  Normally this has no effect since the default is 1. 

( .  , .  ) c

text

. 
The change command deletes the addressed lines, then accepts input text which replaces these lines.  .  is left at the last line input; if there were none, it is left at the first line not deleted. 

( .  , .  ) c/regular expression /replacement /

( .  , .  ) c/regular expression /replacement /nn

( .  , .  ) c/regular expression /replacement /g
This form of the change command is identical to the s command below. 

( .  , .  ) coa
The co (copy) command is identical to the t (transfer) command below. 

( .  , .  ) d
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. 

d pathname
The current directory is set to pathname by a call to chdir(2).

d=nn
Sets xed’s idea of what the depth of the screen is, to nn (decimal) lines.  This is used in calculating how many lines will fit on the screen with the : command, and may be preset with the −c flag (see above). 

e filename

ei filename
The edit command causes the entire contents of the buffer to be deleted, and then the named file to be read in.  If no filename is given, the current file is used.  .  is set to the last line of the buffer.  The number of lines read is printed.  filename (if present) is remembered for possible use as a default file name in a subsequent e, r, or w command.  If the i is present, xed will read filename immediately (without double-checking first). 

e=c
The end-of-line character is set to c. Thereafter, any occurrences of c are treated as if they were an actual newline character.  This facilitates entering several commands on the same physical line.  Caution: the eol character is also interpreted in insert mode. 

enn
Displays the long error message for error number nn.

e+

e−
If a − follows, issue error messages in the form ?nn where nn is the error number of the error that occurred.  This is mostly useful for slow terminals.  A + returns to long error messages.  (See the −k flag, and the enn command above.) 

( .  , .  ) exp
Providing that a tab character has been set (see the t=c command and the −t flag) as well as tab stops being set (see the t,nn command), any instances of the tab character within the addressed lines which are to the left of a column which is marked as a tab stop, will be expanded with an appropriate number of fill characters. (See the f=c command). 

f filename
The filename command prints the currently remembered file name.  If filename is given, the currently remembered file name is changed to filename.

f=c
Set the fill character to c. This is the character used to fill out a line where tab characters have been expanded.  If c is missing, the fill character is reset to the default, which uses as many tabs as possible, followed by as many blanks as necessary to reach the desired column, resulting in the fewest possible characters to get to the desired position. 

( 1 , $ ) g/regular expression /command-list

( 1 , $ ) g/regular expression /vcommand-list
In the global command, the first step is to mark every line which matches the given regular expression. If the optional v is present after the regular expression, each line potentially matching the regular expression will be printed, followed by the message “ Ok?  ”.  If the response begins with n, the line will not be marked, any other response will cause the line to be marked. Then for every marked line, the given command list is executed with .  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 \ .  The a, i, and c commands and associated input are permitted; the .  terminating input mode may be omitted if it would be on the last line of the command list.  The (global) commands, g, and v, are not permitted in the command list.  If an end-of-file (Ctrl-D) is typed in response to the prompt, no further lines will be scanned or marked, and all lines marked so far (if any) will have command-list applied to them. 

h

hnn
Column numbers to column nn (default 71) are printed out.  Any columns which have tab stops set will print out with − character in the appropriate position. 

he[lp]
List syntax of all xed commands available.  (Merely displays the contents of the file /etc/xed.doc .) 

( .  ) i

text

. 
This command inserts the given text before the addressed line. .  is left at the last line input; if there were none, at the addressed line.  This command differs from the a command only in the placement of the text. 

( .  ) i text
This form of the insert command inserts one line before the addressed line, consisting of the text following the space.  (See the a command.) 

( .  , .  ) i/text /
Insert the text before the first character in the addressed lines.

( .−1 , .  ) j

( .−1 , .  ) j/text /
Join the addressed lines together to form one resulting line. This effectively removes the new-line from the ends of all but the last line. (Useful for rejoining lines that were split incorrectly by the s command.)  If a delimiter (and perhaps some text) is present, then the text will be inserted between the text of the joined lines. 

k

( .  , .  ) kx
The mark command marks the addressed line(s) with name x, which must be a letter. Either of the address forms ´x or X (capital letter) then address this/these line(s).  If no character is specified after the command, all currently marked lines are listed. 

( .  , .  ) l
The list command prints the addressed lines in an unambiguous way: non-graphic characters are printed as ^X, and long lines are folded. Tab characters show as -
>
and backspace characters are displayed as -
<
. An l command may follow most others on the same line. 

( .+1 , .+nn ) la
One page of text is listed as in the l command above.  The text is guaranteed not to scroll off the screen. 

( 1 , $ ) ll
The entire contents of the edit buffer are listed as if “ 1,$l ” had been typed. 

m
The characters ^ $ .  * [ & \( \) and \ lose or regain their special meaning in patterns as well as in the substitute command.  Each invocation of m toggles the “ magic ” characters on/off. 

( .  , .  ) ma

( .  , .  ) moa
The move command repositions the addressed lines after the line addressed by a. The last of the moved lines becomes the current line.

n
Line numbering is toggled on or off.

n+

n−
Line numbering for the | (and other variants) command is turned on for a +, off for a −. 

( .  , .  ) p
The print command prints the addressed lines.  .  is left at the last line printed.  The p command may be placed on the same line after most commands. 

( .+1 , .+nn ) pa
One page of text is printed out.  The text is guaranteed not to scroll off the screen.  (See the : command below.) 

( 1 , $ ) pp
The entire contents of the edit buffer are listed as if “ 1,$p ” had been typed. 

q

qi
The quit command causes xed to exit.  No automatic write of a file is done.  If the edit file has been modified and the entire contents of the buffer have not been written to a file, a query will be issued to insure that the user has not forgotten to write his file.  If the i is present, the editor will quit immediately (without double-checking first).  Moreover, if the −f flag was selected, the file will not be (over)written. 

( $ ) r filename
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 and f commands).  The remembered file name is not changed unless filename is the very first file name mentioned.  Address “ /
0
” is legal for r and causes the file to be read at the beginning of the buffer.  If the read is successful, the number of lines read is typed.  .  is left at the last line read from the file. 

s
The stop command without any parameters performs an automatic write ( w) if the file has been modified and then exits the editor. 

( .  , .  ) s/regular expression /replacement /

( .  , .  ) s/regular expression /replacement /nn

( .  , .  ) s/regular expression /replacement /g
The substitute command searches each addressed line for an occurrence of the specified regular expression.  On each line in which a match is found, one of the folowing actions are taken for each of the three forms of the command:

1.The first occurrence of the specified expression is replaced by the replacement text. 

2.
The nn-th (where nn is a decimal number) occurrence of the specified expression is replaced by the replacement text. 

3.
All occurrences of the specified expression are replaced.

It is an error for the substitution to fail on all addressed lines. Any character other than newline may be used instead of / to delimit the regular expression and the replacement.  .  is left at the last line substituted.  An ampersand & appearing in the replacement is replaced by the string matching the regular expression.  As a more general feature, the characters \ n , where n is a digit, are replaced by the text matched by the n-th regular subexpression enclosed between \( and \) .  When nested, parenthesized subexpressions are present, n is determined by counting occurrences of \( starting from the left.  Lines may be split by substituting newline characters into them.  The newline in the replacement must be escaped by preceding it with a \ . 

sann
The save-count command changes the default (35) count of text-changing commands which may be executed before an automatic buffer save will be done.  ( nn is a decimal number.)  The save file name is the current filename with a .edt extension.  A count of zero (/
0
) will disable the auto-save feature.

t
All tab stops currently in effect, as set by the t,nn command, are listed. 

( .  , .  ) ta
A copy of the addressed lines is transferred after address a (which may be /
0
). .  is left at the last line of the copy. 

t=c
Set tab character to c. All occurrences of this character entered by the a or i commands will be expanded to the appropriate number of fill characters to get to the next column with a tab stop. Any occurrences of the tab character after the last tab column will be untouched. 

t,nn ,nn ,... 
Set tab stops in specified (decimal) columns.  Numbers preceded by a − will clear the tab setting at that position.  The number zero clears all tab settings. 

u
The undo command will restore the last modified line to its original condition.  This is different from the x ( undelete) command, which recovers blocks of deleted lines, whereas u will restore only one line, when modified by a substitution or tab expansion.  Undo will not recover from a join command, nor from any deletion, which is processed by the undelete command. 

( 1 , $ ) v/regular expression /command-list

( 1 , $ ) v/regular expression /vcommand-list
This command is the same as the global command except that the command list is executed with .  initially set to every line except those matching the regular expression. 

( 1 , $ ) w filename

( 1 , $ ) w>filename

( 1 , $ ) wi filename
The write command writes the addressed lines onto the given file.  If the file does not exist, it is created (see umask(2)). The remembered file name is not changed unless filename is the very first file name mentioned.  If no file name is given, the remembered file name, if any, is used (see e and f commands).  .  is unchanged.  If the > is present, the addressed lines will be appended onto the end of the file.  If the wi form is used, and the file is write-locked, then xed will attempt to over-ride the file permission, if possible. 

w=nn
Sets xed’s idea of how wide the screen is to nn columns.  This is used in calculating how many lines will fit on the screen with a : command, and may be preset with the −w flag (see above). 

( .  ) x
Undelete is used to recover the most recently deleted (or replaced) block of lines.  .  is left at the last recovered line. 

Example:
25,34ddelete the lines
*see the damage
24xrecovers the lost lines

( .  ) y+

y

y−
This command changes the processing of an interrupt received from the terminal. If the − is present, normal processing takes place.  That is, the message “INTERRUPT!” will be displayed on the terminal and xed will prompt for another command.  If the + is present, the addressed line is set as the initial address for the : command, which will automatically be invoked upon each interrupt.  Lastly, if no character follows, then upon each interrupt, one page will be displayed from .  onward, which is useful for paging through sections of text. 

@ filename

@p filename
Xed opens the specified file, and reads command lines from it.  The commands are echoed to the terminal (if the p is present) as each character is processed.  This allows monitoring the command file as it is running, so that erroneous command line(s) will appear before their respective error messages.  If no filename is given, the last indirected filename, if any, will be used.

!UNIX-command
The remainder of the line after the !  is sent to the shell (see SH(1)) to be interpreted as a UNIX command.  .  is unchanged. 

( .  ) |UNIX-command
The addressed lines are piped as the standard input to the command(s) following the | symbol.  The UNIX command is passed to the shell (as in !  above) to be processed.  Line numbers will not precede the lines of text sent to the command(s) unless explicitly enabled via the n+ command (see above). 

|+

|−
Turn on (or off, respectively) strict checking of the exit status of UNIX commands executed via the || command.  If checking is enabled, no processing will be done on the text returned by a command which has a non-zero exit status (thereby implying an error occurred).  This reduces the chance of erroneous command processing causing loss of lines.  Lines deleted by the || command may be recovered with x (undelete). 

( .  ) ||UNIX-command
This variant of the pipe command (commonly referred to as the “ double-pipe ” command) performs similarly to the | command above, but replaces the lines sent to the command(s) with those received from the command(s) on the standard output of the command(s).  If the error status from the command(s) is not that of a normal exit, no change will be made in the text. Similarly, (by default) if the exit status of the command(s) is non-zero (possibly indicating an error) no changes will be made. This is due to the existence of many older programs which do not terminate with a meaningful exit status. The strict exit status checking may be disabled via the |− command below.  An optional line number ( not address) may immediately follow the || which will specify the line after which the returned lines are to be placed. 

|<UNIX-command
Lines generated by the UNIX command(s) are inserted after ..  An optional line number ( not address) may immediately follow the < which will specify the line after which the returned lines are to be placed. 

( .  ) |>UNIX-command
The only difference between this command and the || command above is this variant inserts the generated text after the lines sent, instead of replacing the original lines.  An optional line number ( not address) may immediately follow the > which will specify the line after which the returned lines are to be placed. 

( .+1 , .+nn ) :

( .-nn , .  ) :-

( .-nn , .+nn ) *
One page of text is printed out.  The text is guaranteed not to scroll off the screen.  The first form (just the : alone) will start at the addressed line, the line following .  is the default, and print one screenful, or page of text.  .  is set to the last line displayed.  The second form, :-, displays one screenful, leaving .  as the last line displayed, and remaining as the current line.  The last form, *, displays one screenful, with .  centered in the page.

( .+1 , .+nn ) (newline)
An address alone on a line causes the addressed line to be printed. A blank line alone is equivalent to “ .+1,.+nn p ”; it is useful for stepping through text.  The nn is the count specified with the b command (default 1). 

If an interrupt signal (ASCII DEL) is received, xed prints “INTERRUPT!” and returns to its command level.  (See also the y command for alternate interrupt processing.) 

Some size limitations

512 characters per line, (see the −B flag above)
256 characters per global command list,
64 characters per file name,
128K characters in the temporary file (PDP-11 version only)
(256K characters with −h flag)
(No limit on the Vax version)
The limit on the number of lines depends on the amount of core:

each line takes 1 word. 
(The current absolute maximum on the PDP-11’s is 24,062 lines.)

FILES

/tmp/e????? 
temporary; ????? is process number (in decimal).

/tmp/ep????? 
temporary for || stuff. 

*.hup if hangup signal is received. 

*.bak if −b flag is specified. 

*.int if −i flag is specified and an interrupt is received. 

*.edt auto-save (every 35 commands). 

*.trm if termination signal is received. 

/etc/xed.doc
for the help command. 

DIAGNOSTICS

Each command has self-explanatory error messages. 

SEE ALSO

ed(1), edit(1), eed(1), ex(1), umask(2), vi(1)
A Tutorial Introduction to the ED Text Editor − B. W. Kernighan

BUGS

A \ followed by a newline, useful for splitting lines with the substitute command, may not be passed through the global command.
 
If line(s) are deleted which include the endpoints of a range marked with the k command, that mark-name character will not work correctly. 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026