ex(1)                                                                    ex(1)


NAME
     ex - text editor

SYNOPSIS
     ex [-s] [-l] [-L] [-R] [-r file] [-t tag] [-v] [-V] [-x] [-C] [+ command]
     [-c command] [-w size] 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.
     Display based editing is the focus of vi.

     If you use a window or a CRT terminal, you may wish to use the vi(1)
     editor, which focuses on the display-editing portion of ex.

   For ed Users
     If you have used ed(1) you will find that, in addition to having all of
     the ed(1) 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(1) 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
     vi(1).

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

     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 filenames, or a pattern as used by the shell to specify a new set
     of files to be dealt with.  In general, filenames in the editor can be


     formed with full shell metasyntax.  The metacharacter % is also available
     in forming filenames and is replaced by the name of the current file.
     For editing large groups of related files you can use ex's tag command to
     quickly locate functions and other important points in any of the files.
     This is useful when working on a large program when you want to quickly
     find the definition of a particular function.  The ctags(1) utility
     builds a tags file for C, Pascal, and FORTRAN programs.

     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 that 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 that match words to be
     constructed.  This is convenient, for example, in searching for the word
     edit if your document also contains the word editor.  See the regcomp(5)
     man page for information about using the regular expression syntax.  This
     version of ex is X/Open compliant and uses the X/Open defined regular
     expression syntax.

     ex has a set of options that you can set to tailor it to your liking.
     One option that 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 > that shift groups of lines, and the ability to filter portions of
     the buffer through commands such as sort(1).

   Invocation Options
     The following invocation options are interpreted by ex (previously
     documented options are discussed in the NOTES section at the end of this
     manual page):

     -s           Suppress all interactive-user feedback.  This is useful in
                  processing editor scripts.

     -l           Set lisp mode; indents appropriately for Lisp code; the (),
                  {}, [[ and ]] commands in visual mode are modified to have
                  meaning for Lisp.


     -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.  -r file Edit file after
                  an editor or system crash.  (Recovers the version of file
                  that was in the buffer when the crash occurred.)

     -t tag       Edit the file containing the tag and position the editor at
                  its definition.

     -v           Invoke vi.

     -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 crypt(1).  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).

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

     + command    Begin editing by executing the specified ex command-mode
                  commands.  As with normal editing command-line entries, the
                  command option-argument can consist of multiple ex commands
                  separated by vertical-line characters (|).  The use of
                  commands that enter input or visual modes in this manner
                  produces undefined results.

     -w size      Set the value of the window editor option to size.

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

   ex Commands
     shell escape           !
     forced encryption      C
     heuristic encryption   X
     lshift                 <
     print next             CR
     resubst                &
     rshift                 >
     scroll                 ^D
     window                 z

   ex Command Addresses
     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
     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

     If the EXINIT environment variable is set, initialization options are
     taken from that variable.  Otherwise, initialization options are taken
     from $HOME/.exrc, if it exists.  Finally, if the exrc option is set
     (either by EXINIT or $HOME/.exrc,) initialization options are taken from
     ./.exrc, if it exists.


   Most useful options and their abbreviations
     autoindent   ai     supply indent
     autowrite    aw     write before changing files
     directory           pathname of directory for temporary work files
                         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


exrcex


     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
      [x-y]       any character between x and y
      *           any number of preceding characters

FILES
     /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


     /usr/preserve/login         preservation directory (where login is the
                                 user's login name)

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.

     ex has a limit of 15,687,678 editable lines.  Attempts to edit or create
     files larger than this limit cause ex to terminate with an appropriate
     error message.

SEE ALSO
     crypt(1), ctags(1), ed(1), edit(1), grep(1), sed(1), sort(1), vi(1),
     curses(3X), term(4), terminfo(4), regcomp(5).

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


                                                                        Page 6