ex(1) USER COMMANDS 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 you will find that, in addition to hav-
ing all of the ed 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
capabilities of terminals than ed does, and uses the termi-
nal 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
character and line in its visual command (which can be
abbreviated vi) and which is the central mode of editing
when using the vi command.
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
1
ex(1) USER COMMANDS ex(1)
-r file option) to retrieve your work. This will get you
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.
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.
2
ex(1) USER COMMANDS ex(1)
-v Invoke vi.
-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 the crypt command. 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 NOTES
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 editor
command (usually a search or positioning com-
mand).
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 terminated
by a line having only "." on it, or, abnor-
mally, with an interrupt.
Visual Entered by typing vi; terminated by typing Q or
^\ (control-\).
ex Command Names and Abbreviations
abbrev ab map set se
3
ex(1) USER COMMANDS 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 pathname of directory for temporary work files
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
4
ex(1) USER COMMANDS ex(1)
modelines first five lines and last five lines executed
as 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/share/lib/terminfo/* describes capabilities of terminals
$HOME/.exrc editor startup file
./.exrc editor startup file
/tmp/Exnnnnn editor temporary
/tmp/Rxnnnnn named buffer temporary
/var/preserve/login preservation directory
(where login is the user's login)
5
ex(1) USER COMMANDS ex(1)
NOTES
Several options, although they continue to be supported,
have been replaced in the documentation by options that fol-
low 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. The encryption
options and commands are provided with the Security Adminis-
tration Utilities package, which is available only in the
United States. The z command prints the number of logical
rather than physical lines. More than a screen full of out-
put 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.
SEE ALSO
crypt(1), ed(1), edit(1), grep(1), sed(1), sort(1), vi(1).
curses(3X), in the Programmer's Reference Manual.
term(4), terminfo(4) in the System Administrator's Reference
Manual.
User's Guide.
Editing Guide.
curses/terminfo chapter of the Programmer's Guide.
6