2BSD/man/ex.u

.TH EX UCB 4/4/79 UCB
.SH NAME
ex \- text editor
.SH SYNOPSIS
.B ex
[
.B \-
] [
.B \-v
] [
.B \-t 
tag
] [
.B \-r
] [
\fB\+\fIlineno\fR
]
name ...
.SH DESCRIPTION
.I Ex
is the root of a family of editors:
.I edit,
.I ex
and
.I vi.
.I Ex
is a superset of
.I ed,
with the most notable extension being a display editing facility.
Display based editing is the focus of
.I vi.
.PP
If you have not used
.I ed,
or are a casual user, you will find that the editor
.I edit
is convenient for you.
It avoids some of the complexities of
.I ex
used mostly by systems programmers and persons very familiar with
.I ed.
.PP
If you have a \s-2CRT\s0 terminal, you may wish to use a display
based editor; in this case
see
.IR vi (UCB),
which is a command which focuses on the display editing portion of
.I ex.
.SH DOCUMENTATION
For
.I edit
and
.I ex
see the
.I "Ex/edit command summary \- Version 2.0."
The document
.I "Edit: A tutorial"
provides a comprehensive introduction to
.I edit
assuming no previous knowledge of computers or the \s-2UNIX\s0 system.
.PP
The
.I "Ex Reference Manual \- Version 2.0"
is a comprehensive and complete manual for the command mode features
of
.I ex,
but you cannot learn to use the editor by reading it.
For an introduction to
more advanced forms of editing using the command mode of
.I ex
see the editing documents written by Brian Kernighan for the editor
.I ed;
the material in the introductory and advanced documents works also with
.I ex.
.PP
.I "An Introduction to Display Editing with Vi"
introduces the display editor
.I vi
and provides reference material on
.I vi.
The
.I "Vi Quick Reference"
card summarizes the commands
of
.I vi
in a useful, functional way, and is useful with the
.I Introduction.
.SH FOR ED USERS
If you have used
.I ed
you will find that
.I ex
has a number of new features useful on CRT terminals.
Intelligent terminals and high speed terminals are very pleasant to  use
with
.I vi.
Generally, the editor uses far more of the capabilities of terminals than
.I ed
does, and uses the terminal capability data base
.IR termcap (UCB)
and the type of the terminal you are using from the variable
TERM in the environment to determine how to drive your terminal efficiently.
The editor makes use of features such as insert and delete character and line
in its
.B visual
command
(which can be abbreviated \fBvi\fR)
and which is the central mode of editing when using
.IR vi (UCB).
There is also an interline editing
.B open
(\fBo\fR)
command which works on all terminals.
.PP
.I Ex
contains a number of new features for easily viewing the text of the file.
The
.B z
command gives easy access to windows of text.
Hitting ^D causes the editor to scroll a half-window of text
and is more useful for quickly stepping through a file than just hitting
return.
Of course, the screen oriented
.B visual
mode gives constant access to editing context.
.PP
.I Ex
gives you more help when you make mistakes.
The
.B undo
(\fBu\fR)
command allows you to reverse any single change which goes astray.
.I Ex
gives you a lot of feedback, normally printing changed lines,
and indicates when more than a few lines are affected by a command
so that it is easy to detect when a command has affected more lines
than it should have.
.PP
The editor also normally prevents overwriting existing files unless you 
edited them so that you don't accidentally clobber
with a
.I write
a file other than the one you are editing.
If the system (or editor) crashes, or you accidentally hang up the phone,
you can use the editor
.B recover
command to retrieve your work.
This will get you back to within a few lines of where you left off.
.PP
.I Ex
has several features for dealing with more than one file at a time.
You can give it a list of files on the command line
and use the
.B next
(\fBn\fR) command to deal with each in turn.
The
.B next
command can also be given a list of file names, or a pattern
as used by the shell to specify a new set of files to be dealt with.
In general, filenames in the editor may be formed with full shell
metasyntax.
The metacharacter `%' is also available in forming filenames and is replaced
by the name of the current file.
For editing large groups of related files you can use
.I ex's
.B tag
command to quickly locate functions and other important points in 
any of the files.
This is useful when working on a large program when you want to quickly
find the definition of a particular function.
The command
.IR ctags (UCB)
builds a
.I tags
file or a group of C programs.
.PP
For moving text between files and within a file the editor has a group
of buffers, named
.I a
through
.I z.
You can place text in these
named buffers and carry it over when you edit another file.
.PP
There is a command
.B &
in
.I ex
which repeats the last
.B substitute
command.
In addition there is a
confirmed substitute command.
You give a range of substitutions to be done and the editor interactively
asks whether each substitution is desired.
.PP
You can use the
.B substitute
command in
.I ex
to systematically convert the case of letters between upper and lower case.
It is possible to ignore case
of letters in searches and substitutions.
.I Ex
also allows regular expressions which match words to be constructed.
This is convenient, for example, in searching for the word
``edit'' if your document also contains the word ``editor.''
.PP
.I Ex
has a set of
.I options
which you can set to tailor it to your liking.
One option which is very useful is the
.I autoindent
option which allows the editor to automatically supply leading white
space to align text.  You can then use the ^D key as a backtab
and space and tab forward to align new code easily.
.PP
Miscellaneous new useful features include an intelligent
.B join
(\fBj\fR) command which supplies white space between joined lines
automatically,
commands < and > which shift groups of lines, and the ability to filter
portions of the buffer through commands such as
.I sort.
.SH FILES
.DT
/usr/lib/ex2.0strings		error messages
.br
/usr/lib/ex2.0recover		recover command
.br
/usr/lib/ex2.0preserve		preserve command
.br
/etc/termcap			describes capabilities of terminals
.br
~/.exrc				editor startup file
.br
/tmp/Ex\fInnnnn\fR			editor temporary
.br
/tmp/Rx\fInnnnn\fR			named buffer temporary
.br
/usr/preserve			preservation directory
.SH SEE ALSO
awk(1), ed(1), grep(1), sed(1), edit(UCB), grep(UCB), termcap(UCB), vi(UCB)
.SH AUTHOR
William Joy
.SH BUGS
The
.I undo
command causes all marks to be lost on lines changed and then restored
if the marked lines were changed.
.PP
.I Undo
never clears the buffer modified condition.
.PP
The
.I z
command prints a number of logical rather than physical lines.
More than a screen full of output may result if long lines are present.
.PP
File input/output errors don't print a name if the command line \fB`\-'\fR
option is used.
.PP
There is no easy way to do a single scan ignoring case.
.PP
Because of the implementation of the arguments to
.I next,
only 512 bytes of argument list are allowed there.
.PP
The format of
.I /etc/termcap
and the large number of capabilities of terminals used by the editor
cause terminal type setup to be rather slow.
.PP
The editor does not warn if text is placed in named buffers and not used
before exiting the editor.
.PP
Null characters are discarded in input files, and cannot appear in resultant
files.