EDIT(1) SysV EDIT(1)
NAME
edit - text editor (variant of ex for casual users)
SYNOPSIS
edit [-r] name ...
DESCRIPTION
edit is a variant of the text editor ex recommended for new or casual
users who wish to use a command-oriented editor.
OPTION
-r Recovers file after an editor or system crash. The following
brief introduction should help you get started with edit. If
you are using a CRT terminal you may want to learn about the
display editor vi.
To edit the contents of an existing file you begin with the command "edit
name" to the shell. edit makes a copy of the file which you can then
edit, and tells you how many lines and characters are in the file. To
create a new file, just make up a name for the file and try to run edit
on it; you will cause an error diagnostic, but do not worry.
edit prompts for commands with the character `:', which you should see
after starting the editor. If you are editing an existing file, then you
will have some lines in edit's buffer (its name for the copy of the file
you are editing). Most commands to edit use its "current line" if you do
not tell them which line to use. Thus if you say print (which can be
abbreviated p) and hit carriage return (as you should after all edit
commands) this current line will be printed. If you delete (d) the
current line, edit prints the new current line. When you start editing,
edit makes the last line of the file the current line. If you delete
this last line, then the new last line becomes the current one. In
general, after a delete, the next line in the file becomes the current
line. (Deleting the last line is a special case.)
If you start with an empty file or wish to add some new lines, then the
append (a) command can be used. After you give this command (typing a
carriage return after the word append) edit will read lines from your
terminal until you give a line consisting of just a ".", placing these
lines after the current line. The last line you type then becomes the
current line. The command insert (i) is like append but places the lines
you give before, rather than after, the current line.
edit numbers the lines in the buffer, with the first line having number
1. If you give the command "1" then edit types this first line. If you
then give the command delete edit deletes the first line, line 2 will
become line 1, and edit prints the current line (the new line 1) so you
can see where you are. In general, the current line is always the last
line affected by a command.
You can make a change to some text within the current line by using the
substitute (s) command. Use s/old/new/ where old is replaced by the old
characters you want to get rid of and new is the new characters you want
to replace it with.
The command file (f) tells you how many lines there are in the buffer you
are editing and will say "[Modified]" if you have changed it. After
modifying a file you can put the buffer text back to replace the file by
giving a write (w) command. You can then leave the editor by issuing a
quit (q) command. If you run edit on a file, but do not change it, it is
not necessary (but does no harm) to write the file back. If you try to
quit from edit after modifying the buffer without writing it out, you are
warned that there has been "No write since last change" and edit awaits
another command. If you wish not to write the buffer out then you can
issue another quit command. The buffer is then irretrievably discarded,
and you return to the shell.
By using the delete and append commands, and giving line numbers to see
lines in the file you can make any changes you desire. You should learn
at least a few more things, however, if you are to use edit more than a
few times.
The change (c) command changes the current line to a sequence of lines
you supply (as in append you give lines up to a line consisting of only a
"."). You can tell change to change more than one line by giving the
line numbers of the lines you want to change, i.e., "3,5change". You can
print lines this way too. Thus "1,23p" prints the first 23 lines of the
file.
The undo (u) command reverses the effect of the last command you gave
which changed the buffer. Thus if you give a substitute command which
does not do what you want, you can say undo and the old contents of the
line will be restored. You can also undo an undo command so that you can
continue to change your mind. edit gives you a warning message when
commands you do affect more than one line of the buffer. If the amount
of change seems unreasonable, you should consider doing an undo and
looking to see what happened. If you decide that the change is ok, then
you can undo again to get it back. Note that commands such as write and
quit cannot be undone.
To look at the next line in the buffer you can just hit carriage return.
To look at a number of lines hit ^D (control key and, while it is held
down D key, then let up both) rather than carriage return. This will
show you a half screen of lines on a CRT or 12 lines on a hardcopy
terminal. You can look at the text around where you are by giving the
command "z.". The current line will then be the last line printed; you
can get back to the line where you were before the "z." command by saying
"'\*(rq'. The z command can also be given other following characters
"z-" prints a screen of text (or 24 lines) ending where you are; "z+"
prints the next screenful. If you want less than a screenful of lines,
type in "z.12" to get 12 lines total. This method of giving counts works
in general; thus you can delete 5 lines starting with the current line
with the command "delete 5".
To find things in the file, you can use line numbers if you happen to
know them; since the line numbers change when you insert and delete lines
this is somewhat unreliable. You can search backwards and forwards in
the file for strings by giving commands of the form /text/ to search
forward for text or ?text? to search backward for text. If a search
reaches the end of the file without finding the text it wraps, end
around, and continues to search back to the line where you are. A useful
feature here is a search of the form /^text/ which searches for text at
the beginning of a line. Similarly /text$/ searches for text at the end
of a line. You can leave off the trailing / or ? in these commands.
The current line has a symbolic name "."; this is most useful in a range
of lines as in ".,$print" which prints the rest of the lines in the file.
To get to the last line in the file you can refer to it by its symbolic
name "$". Thus the command "$ delete" or "$d" deletes the last line in
the file, no matter which line was the current line before. Arithmetic
with line references is also possible. Thus the line "$-5" is the fifth
before the last, and ".+20" is 20 lines after the present.
You can find out which line you are at by doing ".=". This is useful if
you wish to move or copy a section of text within a file or between
files. Find out the first and last line numbers you wish to copy or move
(say 10 to 20). For a move you can then say "10,20delete a" which
deletes these lines from the file and places them in a buffer named
a.edit and has 26 such buffers named a through z. You can later get these
lines back by doing "put a" to put the contents of buffer a after the
current line. If you want to move or copy these lines between files you
can give an edit (e) command after copying the lines, following it with
the name of the other file you wish to edit, i.e., "edit chapter2". By
changing delete to yank above you can get a pattern for copying lines.
If the text you wish to move or copy is all within one file then you can
just say "10,20move $" for example. It is not necessary to use named
buffers in this case (but you can if you wish).
SEE ALSO
ed(1), ex(1), vi(1).