/usr/xpg4/bin/ex [ - | -s ] [-l] [-L] [-R] [ -r [ file]] [ -t tag ] [-v] [-V] [-x] [ -wn ] [-C] [ +command | -c command ] file...
ex 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 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.
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 (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.
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 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.
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 | 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 |
forced encryption C heuristic encryption X |
resubst & print next CR |
rshift > lshift < |
scroll ^D window z |
shell escape ! |
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,$ |
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 |
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 |
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 |
^ 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 |
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 possible.
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.
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 conformant version in the future. Scripts which use the ex family of addressing and features should use the /usr/xpg4/bin version of these utilities.