EX(1) (Editing Utilities) EX(1)
NAME
ex - text editor
SYNOPSIS
ex [-s] [-v] [-t tag] [-r file] [-L] [-R] [-x] [-C] [-c
command] 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
capabilities 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 character and line in its visual command
(which can be abbreviated 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 ctrl-d causes the editor to scroll down 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.
Page 1 May 1989
EX(1) (Editing Utilities) EX(1)
ex gives you help when you make mistakes. The undo (u)
command 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
accidentally 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 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)
command.
There is a command & in ex which repeats the last 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.
It is possible to ignore the case of letters in searches and
Page 2 May 1989
EX(1) (Editing Utilities) EX(1)
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
autoindent option that allows the editor to supply leading
white space to align text automatically. You can then use
ctrl-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
(previously documented options are discussed in the NOTES
section at the end of this manual page):
-s Suppress all interactive-user feedback. This is
useful in processing editor scripts.
-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.
Page 3 May 1989
EX(1) (Editing Utilities) EX(1)
-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 command 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 editor
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 terminated
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
append a mark ma shell sh
Page 4 May 1989
EX(1) (Editing Utilities) EX(1)
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 ctrl-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
Page 5 May 1989
EX(1) (Editing Utilities) EX(1)
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
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
Page 6 May 1989
EX(1) (Editing Utilities) EX(1)
[^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
Division, Department of Electrical Engineering and Computer
Science.
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
follow the Command Syntax Standard [see intro(1)]. The -
option has been replaced by -s, a -r option that is not
followed 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), in the Programmer's Reference Manual.
term(4), terminfo(4) in the System Administrator's Reference
Manual.
User's Guide.
``curses/terminfo'' chapter of the Programmer's Guide.
WARNINGS
The encryption options and commands are provided as a
Page 7 May 1989
EX(1) (Editing Utilities) EX(1)
separate package only to source product customers in the
United States.
BUGS
The z command prints the number of logical rather than
physical 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.
Page 8 May 1989