ex - text editor
/usr/bin/ex [ -| -s] [-l] [-L] [-R] [ -r [file]] [-t tag]
[-v] [-V] [-x] [-wn] [-C] [+command | -c command] file...
/usr/xpg4/bin/ex [ -| -s] [-l] [-L] [-R] [ -r [file]] [-
t tag] [-v] [-V] [-x] [-wn] [-C] [+command | -c command]
The ex utility is the root of a family of editors: ex and
vi. ex is a superset of ed(1), with the most notable exten-
sion 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.
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 capa-
bilities 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
The ex utility 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 (CTRL-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.
The ex utility 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 acciden-
tally 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.
The ex utility 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-
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
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 exam-
ple, 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
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.
The following options are supported:
- | -s
Suppress all interactive user feedback. This is use-
ful when processing editor scripts.
-l Set up for editing LISP programs.
-L List the name 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.
Edit file after an editor or system crash. (Recovers
the version of file that was in the buffer when the
Edit the file containing the tag and position the edi-
tor at its definition.
-v Start up in display editing state using vi. You can
achieve the same effect by simply typing the vi com-
-V Verbose. When ex commands are read by means of stan-
dard input, the input will be echoed to standard
error. This may be useful when processing ex commands
within shell scripts.
-x Encryption option. Simulates the 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 tem-
porary buffer file is encrypted also, using a
transformed version of the key typed in for the -x
-wn Set the default window size to n. This is useful when
using the editor over a slow speed line.
-C Encryption option. Same as the -x option, except simu-
lates the C command. The C command is like the X com-
mand, except that all text read in is assumed to have
+command | -c command
Begin editing by executing the specified editor com-
mand (usually a search or positioning command).
If both the -t tag and the -c command options are given, the
-t tag will be processed first. That is, the file containing
the tag is selected by -t and then the command is executed.
The following operand is supported:
file A path name of a file to be edited.
This section defines the ex states, commands, initializing
options, and scanning pattern formations.
Normal and initial state. Input prompted for by ":".
Your line kill character cancels a partial command.
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.
Entered by typing vi; terminated by typing Q or ^\
ex Command Names and Abbreviations
Command Abbrevi- Command Abbrevi- Command Abbrevi-
Name ation Name ation Name ation
abbrev ab map set se
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
join j recover rec xit x
list l rewind rew yank ya
/usr/xpg4/bin/ex, ex Command Arguments
For all of the ex commands listed below, if both a count and
a range are specified for a command that uses them, the
number of lines affected will be taken from the count value
rather than the range. The starting line for the command is
taken to be the first line addressed by the range.
Abbreviate ab[brev] word rhs
Change [range] c[hange][!] [count]
Change Directory chd[ir][!] [directory]; cd[!] [directory]
Copy [range] co[py] line [flags]; [range] t
Delete [range] d[elete] [buffer] [count] [flags]
Edit e[dit][!] [+line][file]; ex[!] [+line]
File f[ile] [file]
Global [range] g[lobal] /pattern/ [commands];
[range] v /pattern/ [commands]
Insert [line] i[nsert][!]
Join [range] j[oin][!] [count] [flags]
List [range] l[ist] [count] [flags]
Map map[!] [x rhs]
Mark [line] ma[rk] x; [line] k x
Move [range] m[ove] line
Next n[ext][!] [file ...]
Number [range] nu[mber] [count] [flags]; [range]
# [count] [flags]
Open [line] o[pen] /pattern/ [flags]
Print [range] p[rint] [count] [flags]
Put [line] pu[t] [buffer]
Read [line] r[ead][!] [file]
Recover rec[over] file
Set se[t] [option[=[value]]...] [nooption...]
Source so[urce] file
Substitute [range] s[ubstitute]
[/pattern/repl/[options] [count] [flags]]
Suspend su[spend][!]; st[op][!]
Tag ta[g][!] tagstring
Unabbreviate una[bbrev] word
Unmap unm[ap][!] x
Visual [line] v[isual] [type] [count] [flags]
Write [range] w[rite][!] [>>] [file]; [range]
w[rite][!] [file]; [range] wq[!] [>>]
Write and Exit [range] x[it][!] [file]
Yank [range] ya[nk] [buffer] [count]
Adjust Window [line] z [type] [count] [flags]
Escape ! command [range]! command
Shift Left [range] < [count] [flags]
Shift Right [range] > [count] [flags]
Resubstitute [range] & [options] [count] [flags];
[range] s[ubstitute] [options] [count]
[flags]; [range] ~ [options] [count
Write Line Number [line] = [flags]
Execute @ buffer; * buffer
C forced encryption
X heuristic encryption
CR print next
! shell escape
ex Command Addresses
n line n
+n n forward
/pat next with pat
?pat previous with pat
x-n n before x
x,y x through y
'x marked with x
" previous context
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
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
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
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
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 termi-
nal being used (the default is the
value of the environment variable
window visual mode lines
wrapmargin wm automatic line splitting
wrapscan ws search around end (or beginning) of
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
[xy] any character between x and y
* any number of preceding characters
See environ(5) for descriptions of the following environment
variables that affect the execution of ex: HOME, LANG,
LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES, NLSPATH, PATH,
SHELL, and TERM.
Override the system-selected horizontal screen size.
Determine a list of ex commands that are executed on
editor start-up, before reading the first file. The
list can contain multiple commands by separating them
using a vertical-line (|) character.
LINES Override the system-selected vertical screen size,
used as the number of lines in a screenful and the
vertical screen size in visual mode.
The following exit values are returned:
0 Successful completion.
>0 An error occurred.
named buffer temporary
describes capabilities of terminals
preservation directory (where login is the user's
editor startup file
editor startup file
See attributes(5) for descriptions of the following attri-
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
| Availability | SUNWcsu |
| CSI | enabled |
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
| Availability | SUNWxcu4 |
| CSI | enabled |
| Interface Stability | Standard |
ed(1), edit(1), grep(1), sed(1), sort(1), vi(1), curses
(3CURSES), term(4), terminfo(4), attributes(5), environ(5),
Solaris Advanced User's Guide
The vi and ex utilities are based on software developed by
The University of California, Berkeley California, Computer
Science Division, Department of Electrical Engineering and
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 fol-
lowed with an option-argument has been replaced by -L, and
+command has been replaced by -c command.
The message file too large to recover with -r option, which
is seen when a file is loaded, indicates that the file can
be edited and saved successfully, but if the editing session
is lost, recovery of the file with the -r option will not be
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.
The editing environment defaults to certain configuration
options. When an editing session is initiated, ex attempts
to read the EXINIT environment variable. If it exists, the
editor uses the values defined in EXINIT, otherwise the
values set in $HOME/.exrc are used. If $HOME/.exrc does not
exist, the default values are used.
To use a copy of .exrc located in the current directory
other than $HOME, set the exrc option in EXINIT or
$HOME/.exrc. Options set in EXINIT can be turned off in a
local .exrc only if exrc is set in EXINIT or $HOME/.exrc.
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.
The standard Solaris version of ex will be replaced by the
POSIX.2-conforming version (see standards(5)) in the future.
Scripts which use the ex family of addressing and features
should use the /usr/xpg4/bin version of these utilities.
Man(1) output converted with