EX(1) INTERACTIVE UNIX System EX(1)
NAME
ex - text editor
SYNOPSIS
ex [-s] [-v] [-t tag] [-r file] [-L] [-R] [-x] [-C] [-c com-
mand] file ...
DESCRIPTION
ex is the root of a family of editors: ex and vi. ex is a
superset of ed, with the most notable extension being a
display editing facility. Display-based editing is the
focus of vi.
If you have a CRT terminal, you may wish to use a display-
based editor; in this case see vi(1), which is a command
which focuses on the display-editing portion of ex.
For ed Users
If you have used ed(1), you will find that, in addition to
having all of the ed(1) commands available, ex has a number
of additional features useful on CRT terminals. Intelligent
terminals and high-speed terminals are very pleasant to use
with vi. Generally, the ex editor uses far more of the capa-
bilities of terminals than ed(1) does and uses the terminal
capability data base [see terminfo(4)] and the type of the
terminal you are using from the environmental variable TERM
to determine how to drive your terminal efficiently. The
editor makes use of features such as insert and delete char-
acter and line in its visual command (which can be abbrevi-
ated vi) and which is the central mode of editing when using
vi(1).
ex contains a number of features for easily viewing the text
of the file. The z command gives easy access to windows of
text. Typing ^D (control-d) causes the editor to scroll a
half-window of text and is more useful for quickly stepping
through a file than just typing return. Of course, the
screen-oriented visual mode gives constant access to editing
context.
ex gives you help when you make mistakes. The undo (u) com-
mand allows you to reverse any single change which goes
astray. 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.
The editor also normally prevents overwriting existing
files, unless you edited them, so that you do not acciden-
tally overwrite a file other than the one you are editing.
If the system (or editor) crashes, or you accidentally hang
up the telephone, you can use the editor recover command (or
-r file option) to retrieve your work. This will get you
Rev. Editing Package Page 1
EX(1) INTERACTIVE UNIX System EX(1)
back to within a few lines of where you left off.
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 next (n) command to deal with each in turn.
The 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, file names in the editor may
be formed with full shell metasyntax. The metacharacter `%'
is also available in forming file names and is replaced by
the name of the current file.
The editor has a group of buffers whose names are the ASCII
lower-case letters (a-z). You can place text in these named
buffers where it is available to be inserted elsewhere in
the file. The contents of these buffers remain available
when you begin editing a new file using the edit (e) com-
mand.
There is a command & in ex which repeats the last substitute
command. In addition, there is a confirmed substitute com-
mand. You give a range of substitutions to be done and the
editor interactively asks whether each substitution is
desired.
It is possible to ignore the case of letters in searches and
substitutions. 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.''
ex has a set of options which you can set to tailor it to
your liking. One option which is very useful is the autoin-
dent option that allows the editor to supply leading white
space to align text automatically. You can then use ^D as a
backtab and space or tab to move forward to align new code
easily.
Miscellaneous useful features include an intelligent join
(j) command that 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 sort(1).
Invocation Options
The following invocation options are interpreted by ex (pre-
viously documented options are discussed in the NOTES sec-
tion at the end of this manual page):
-s Suppress all interactive-user feedback. This
is useful in processing editor scripts.
-v Invoke vi
Rev. Editing Package Page 2
EX(1) INTERACTIVE UNIX System EX(1)
-t tag Edit the file containing the tag and position
the editor at its definition.
-r file Edit file after an editor or system crash.
(Recovers the version of file that was in the
buffer when the crash occurred.)
-L List the names of all files saved as the
result of an editor or system crash.
-R Readonly mode; the readonly flag is set,
preventing accidental overwriting of the
file.
-x Encryption option; when used, ex simulates an
X command and prompts the user for a key.
This key is used to encrypt and decrypt text
using the algorithm of crypt(1). The X com-
mand makes an educated guess to determine
whether text read in is encrypted or not.
The temporary buffer file is encrypted also,
using a transformed version of the key typed
in for the -x option. [See crypt(1)]. Also,
see the WARNINGS section at the end of this
manual page.
-C Encryption option; the same as the -x option,
except that ex simulates a C command. The C
command is like the X command, except that
all text read in is assumed to have been
encrypted.
-c command Begin editing by executing the specified edi-
tor command (usually a search or positioning
command).
The file argument indicates one or more files to be edited.
ex States
Command Normal and initial state. Input prompted for
by :. Your line kill character cancels a
partial command.
Insert Entered by a, i, or c. Arbitrary text may be
entered. Insert state normally is ter-
minated by a line having only "." on it, or,
abnormally, with an interrupt.
Visual Entered by typing vi; terminated by typing Q
or ^\ (control-\).
ex Command Names and Abbreviations
abbrev ab map set se
Rev. Editing Package Page 3
EX(1) INTERACTIVE UNIX System EX(1)
append a mark ma shell sh
args ar move m source so
change c next n substitute s
copy co number nu unabbrev unab
delete d preserve pre undo u
edit e print p unmap unm
file f put pu version ve
global g quit q visual vi
insert i read r write w
join j recover rec xit x
list l rewind rew yank ya
ex Commands
forced encryption C heuristic encryption X
resubst & print next CR
rshift > lshift <
scroll ^D window z
shell escape !
ex Command Addresses
n line n /pat next with pat
. current ?pat previous with pat
$ last x-n n before x
+ next x,y x through y
- previous 'x marked with x
+n n forward '' previous context
% 1,$
Initializing options
EXINIT place set's here in environment variable
$HOME/.exrc editor initialization file
./.exrc editor initialization file
set x enable option x
set nox disable option x
set x=val give value val to option x
set show changed options
set all show all options
set x? show value of option x
Most useful options and their abbreviations
autoindent ai supply indent
autowrite aw write before changing files
directory dir specify the directory
exrc ex allow vi/ex to read the .exrc in the current
directory. This option is set in the EXINIT
shell variable or in the .exrc file in the $HOME
directory.
ignorecase ic ignore case of letters in scanning
list print ^I for tab, $ at end
magic treat . [ * special in patterns
modelines first five lines and last five lines executed as
Rev. Editing Package Page 4
EX(1) INTERACTIVE UNIX System EX(1)
vi/ex commands if they are of the form
ex:command: or vi:command:
number nu number lines
paragraphs para macro names that start paragraphs
redraw simulate smart terminal
report informs you if the number of lines modified
by the last command is greater than the
value of the report variable
scroll command mode lines
sections sect macro names that start sections
shiftwidth sw for < >, and input ^D
showmatch sm to ) and } as typed
showmode smd show insert mode in vi
slowopen slow stop updates during insert
term specifies to vi the type of terminal
being used (the default is the value
of the environmental variable TERM)
window visual mode lines
wrapmargin wm automatic line splitting
wrapscan ws search around end (or beginning) of buffer
Scanning pattern formation
^ beginning of line
$ end of line
. any character
\< beginning of word
\> end of word
[str] any character in str
[^str] any character not in str
[x-y] any character between x and y
* any number of preceding characters
AUTHOR
vi and ex are based on software developed by The University
of California, Berkeley, California, Computer Science Divi-
sion, Department of Electrical Engineering and Computer Sci-
ence.
FILES
/usr/lib/exstrings error messages
/usr/lib/exrecover recover command
/usr/lib/expreserve preserve command
/usr/lib/terminfo/* describes capabilities of terminals
$HOME/.exrc editor startup file
./.exrc editor startup file
/tmp/Exnnnnn editor temporary
/tmp/Rxnnnnn named buffer temporary
/usr/preserve/login preservation directory
(where login is the user's login)
NOTES
Several options, although they continue to be supported,
have been replaced in the documentation by options that
Rev. Editing Package Page 5
EX(1) INTERACTIVE UNIX System EX(1)
follow the Command Syntax Standard [see intro(1)]. The -
option has been replaced by -s, a -r option that is not fol-
lowed with an option-argument has been replaced by -L, and
+command has been replaced by -c command.
SEE ALSO
crypt(1), ed(1), edit(1), grep(1), sed(1), sort(1), vi(1).
curses(3X), term(4), terminfo(4) in the INTERACTIVE SDS
Guide and Programmer's Reference Manual.
User's Guide.
"curses/terminfo" chapter of the Programmer's Guide.
WARNINGS
The encryption options and commands are provided with the
Security Administration Utilities package, which is avail-
able only in the United States.
BUGS
The z command prints the number of logical rather than phy-
sical lines. More than a screen full of output may result
if long lines are present.
File input/output errors do not print a name if the command
line -s option is used.
There is no easy way to do a single scan ignoring case.
The editor does not warn if text is placed in named buffers
and not used before exiting the editor.
Null characters are discarded in input files and cannot
appear in resultant files.
Rev. Editing Package Page 6