EX(1HAS) User Commands EX(1HAS)
NAME
ex - text editor
SYNOPSIS
/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]
file...
/usr/xpg6/bin/ex [
-| -s] [
-l] [
-L] [
-R] [
-r [
file]]
[
-t tag] [
-v] [
-V] [
-x] [
-wn] [
-C]
[+
command |
-c command]
file...
DESCRIPTION
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 extension being a display
editing facility. Display based editing is the focus of
vi.
If you have a
CRT terminal, you can 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 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(5)) 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.
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
accidentally hang up the telephone, you can use the editor
recover command (or
-r file option) to retrieve your work. This gets 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 can 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.
OPTIONS
The following options are supported:
- |
-s Suppresses all interactive user feedback. This
is useful when processing editor scripts.
-l Sets up for editing
LISP programs.
-L Lists 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.
-r file Edits
file after an editor or system crash.
(Recovers the version of
file that was in the
buffer when the crash occurred.)
-t tag Edits the file containing the
tag and positions
the editor at its definition. It is an error to
specify more than one
-t option.
-v Starts up in display editing state, using
vi.
You can achieve the same effect by typing the
vi command itself.
-V Verbose. When
ex commands are read by means of
standard input, the input is echoed to standard
error. This can 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 temporary buffer file
is encrypted also, using a transformed version
of the key typed in for the
-x option.
-wn Sets 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
that
-C simulates the
C command. The
C command
is like the
X command, except that all text read
in is assumed to have been encrypted.
+command |
-c command Begins editing by executing the specified editor
command (usually a search or positioning
command).
/usr/xpg4/bin/ex,
/usr/xpg6/bin/ex If both the
-t tag and the
-c command options are given, the
-t tag is processed first. That is, the file containing the tag is selected
by
-t and then the command is executed.
OPERANDS
The following operand is supported:
file A path name of a file to be edited.
USAGE
This section defines the
ex states, commands, initializing options, and
scanning pattern formations.
ex States Command Normal and initial state. Input prompted for by "
:". The line
kill character cancels a partial command.
Insert Entered by
a,
i, or
c. Arbitrary text can 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 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
w
join j recover rec xit x
list l rewind rew yank ya
Join Command Arguments
Join [
range] j[
oin][!] [
count] [
flags]
If count is specified:
/usr/bin/ex,
/usr/xpg6/bin/ex If no address is specified, the
join command behaves as if
2addr were
the current line and the current line plus
count (
.,. + count). If
one address is specified, the
join command behaves as if
2addr were
the specified address and the specified address plus
count (
addr, addr + count).
/usr/xpg4/bin/ex If no address is specified, the
join command behaves as if
2addr were
the current line and the current line plus
count -1 (
.,. + count -1).
If one address is specified, the
join command behaves as if
2addr were the specified address and the specified address plus
count -1 (
addr, addr + count -1).
/usr/bin/ex,
/usr/xpg4/bin/ex,
/usr/xpg6/bin/ex If two or more addresses are specified, the
join command behaves as
if an additional address, equal to the last address plus
count -1 (
addr1, ..., lastaddr, lastaddr +
count -1), was specified. If this
results in a second address greater than the last line of the edit
buffer, it is corrected to be equal to the last line of the edit
buffer.
If no count is specified:
/usr/bin/ex,
/usr/xpg4/bin/ex,
/usr/xpg6/bin/ex If no address is specified, the
join command behaves as if
2addr were
the current line and the next line (
.,. +1). If one address is
specified, the
join command behaves as if
2addr were the specified
address and the next line (
addr, addr +1).
Additional ex Command Arguments
/usr/bin/ex,
/usr/xpg6/bin/ex For the following
ex commands, if
count is specified, it is
equivalent to specifying an additional address to the command. The
additional address is equal to the last address specified to the
command (either explicitly or by default) plus
count-1. If this
results in an address greater than the last line of the edit buffer,
it is corrected to equal the last line of the edit buffer.
/usr/xpg4/bin/ex For the following
ex commands, if both a count and a range are
specified for a command that uses them, the number of lines affected
is 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
Append [line]a[ppend][!]
Arguments ar[gs]
Change [range] c[hange][!] [count]
Change Directory chd[ir][!] [directory]; cd[!]
[directory]
Copy [range] co[py] line [flags]; [range] t
line [flags]
Delete [range] d[elete] [buffer] [count]
[flags]
Edit e[dit][!] [+line][file]; ex[!] [+line]
[file]
File f[ile] [file]
Global [range] g[lobal] /pattern/ [commands];
[range] v /pattern/ [commands]
Insert [line] i[nsert][!]
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 ...]
Open [line] o[pen] /pattern/ [flags]
Preserve pre[serve]
Put [line] pu[t] [buffer]
Quit q[uit][!]
Read [line] r[ead][!] [file]
Recover rec[over] file
Rewind rew[ind][!]
Set se[t] [option[=[value]]...]
[nooption...] [option?...] [all]
Shell sh[ell]
Source so[urce] file
Suspend su[spend][!]; st[op][!]
Tag ta[g][!] tagstring
Unabbreviate una[bbrev] word
Undo u[ndo]
Unmap unm[ap][!] x
Visual [line] v[isual] [type] [count] [flags]
Write [range] w[rite][!] [>>] [file];
[range] w[rite][!] [file]; [range]
wq[!] [>>] [file]
Write and Exit [range] x[it][!] [file]
Yank [range] ya[nk] [buffer] [count]
Adjust Window [line] z [type] [count] [flags]
Escape ! command [range]! command
Scroll EOF
Write Line Number [line] = [flags]
Execute @ buffer; * buffer
/usr/bin/ex,
/usr/xpg4/bin/ex,
/usr/xpg6/bin/ex For the following
ex commands, if
count is specified, it is
equivalent to specifying an additional address to the command. The
additional address is equal to the last address specified to the
command (either explicitly or by default) plus
count-1. If this
results in an address greater than the last line of the edit buffer,
it is corrected to equal the last line of the edit buffer.
Number [range] nu[mber] [count]
[flags]; [range] |
# [count] [flags]
Print [range] p[rint] [count] [flags]
Substitute [range] s[ubstitute]
[/pattern/repl/[options]
[count] [flags]]
Shift Left [range] < [count] [flags]
Shift Right [range] > [count] [flags]
Resubstitute [range] & [options] [count]
[flags]; [range] s[ubstitute]
[options] [count] [flags];
[range] ~ [options] [count
[flags]
ex Commands C forced encryption
X heuristic encryption
& resubst
CR print next
> rshift
< lshift
^D scroll
z window
! shell escape
ex Command Addresses n line
n . current
$ last
+ next
- previous
+n n forward
% 1,$
/pat next with
pat ?pat previous with
pat x-n n before
x x,y x through
y 'x marked with
x " previous context
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 Useful Options and 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
$HOMEdirectory.
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 environment
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 [xy] any character between
x and
y * any number of preceding characters
ENVIRONMENT VARIABLES
See
environ(7) 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.
COLUMNS Override the system-selected horizontal screen size.
EXINIT 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.
EXIT STATUS
The following exit values are returned:
0 Successful completion.
>0 An error occurred.
FILES
/var/tmp/Exnnnnn editor temporary
/var/tmp/Rxnnnnn named buffer temporary
/usr/lib/expreserve preserve command
/usr/lib/exrecover recover command
/usr/lib/exstrings error messages
/usr/share/lib/terminfo/* describes capabilities of terminals
/var/preserve/login preservation directory (where
login is the
user's login)
$HOME/.exrc editor startup file
./.exrc editor startup file
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
/usr/bin/ex +---------------+-----------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|CSI | Enabled |
+---------------+-----------------+
/usr/xpg4/bin/ex +--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|CSI | Enabled |
+--------------------+-----------------+
|Interface Stability | Standard |
+--------------------+-----------------+
/usr/xpg6/bin/ex +--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|CSI | Enabled |
+--------------------+-----------------+
|Interface Stability | Standard |
+--------------------+-----------------+
SEE ALSO
ed(1),
edit(1),
grep(1),
sed(1),
sort(1),
vi(1),
curses(3CURSES),
term(5),
terminfo(5),
attributes(7),
environ(7),
standards(7) Solaris Advanced User's GuideAUTHOR
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 Computer Science.
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.
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 is not possible.
The
z command prints the number of logical rather than physical lines.
More than a screen full of output can 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. In order to be used,
.exrc in
$HOME or the current directory
must fulfill these conditions:
o It must exist.
o It must be owned by the same userid as the real userid of the
process, or the process has appropriate privileges.
o It is not writable by anyone other than the owner.
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.
June 15, 2004
EX(1HAS)