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.
If you have a CRT terminal, you may wish to use a display
based editor; in this case
see
vi(1).
ex processes supplementary code set characters
according to the locale specified in the LC_CTYPE
environment variable (see LANG on
environ(5)).
In regular expressions, pattern searches are performed
on characters, not bytes, as described on
ed(1).
For ed users
If you have used
ed
you will find that,
in addition to having 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 terminal capability data base
(see
terminfo(4))
and the type of the terminal you are using from the environment 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)
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 line,
you can use the editor
recover
command
(or
-rfile
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 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
^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
(previously documented options are discussed in the
``Notices''
section at the end of this manual page):
-s
Suppress all interactive-user feedback.
This is useful in processing editor scripts.
-v
Invoke
vi.
-ttag
Edit the file containing the
tag
and position the editor at its definition.
Note: tags in the tag file must be in
ascending order.
-rfile
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
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
``Notices''
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.
-ccommand
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 ^e (<Ctrl>-e).
ex command names and abbreviations
Command
Abbreviation
abbrev
ab
append
a
args
ar
change
c
copy
co
delete
d
edit
e
file
f
global
g
insert
i
join
j
list
l
map
mark
ma
move
m
next
n
number
nu
preserve
pre
print
p
put
pu
quit
q
read
r
recover
rec
rewind
rew
set
se
shell
sh
source
so
substitute
s
unabbrev
unab
undo
u
unmap
unm
version
ve
visual
vi
write
w
xit
x
yank
ya
ex commands
Command
Key
forced encryption
C
heuristic encryption
X
lshift
<
print next
CR
resubst
&
rshift
>
scroll
^D
shell escape
!
window
z
ex command addresses
Command
Description
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
Initialization
Description
EXINIT
Place sets 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
Option
Abbreviation
Description
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; the file must be owned by the invoking user
and writable only by the invoking user, or it is ignored.
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
window
Visual mode lines
wrapmargin
wm
Automatic line splitting
wrapscan
ws
Search around end (or beginning) of buffer
Scanning pattern formation
Pattern
Description
^
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
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
/usr/lib/locale/locale/LC_MESSAGES/uxed.abi
language-specific message file (See LANG on
environ(5).)
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
-ccommand.
The encryption options and commands are provided
with the Encryption 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 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.