ex(1)


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. 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 -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.

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.

-t tag
Edit the file containing the tag and position the editor at its definition. Note: tags in the tag file must be in ascending order.

-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.

-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.

-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 ^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

 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

 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,$

 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

 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

 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

 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).)

References

crypt(1), ctags(1), ed(1), edit(1), grep(1), sed(1), sort(1), term(4), terminfo(4), vi(1)

Notices

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 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.

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.
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004