vi(1)




NAME

     vi, view, vedit - screen-oriented  (visual)  display  editor
     based on ex


SYNOPSIS

     /usr/bin/vi [ -| -s] [-l] [-L] [-R] [  -r  [filename]]  [-S]
     [-t tag]  [-v] [-V] [-x] [-wn] [-C] [+command  | -c command]
     filename...

     /usr/bin/view [ -| -s] [-l] [-L] [-R] [ -r [filename]]  [-S]
     [-t tag]  [-v] [-V] [-x] [-wn] [-C] [+command  | -c command]
     filename...

     /usr/bin/vedit [ -| -s] [-l] [-L] [-R] [ -r [filename]] [-S]
     [-t  tag] [-v] [-V] [-x] [-wn] [-C] [+command  | -c command]
     filename...

     /usr/xpg4/bin/vi [ -| -s] [-l] [-L] [-R]  [  -r  [filename]]
     [-S]  [-t  tag]  [-v]  [-V]  [-x]  [-wn]  [-C]  [+command  |
     -c command]  filename...

     /usr/xpg4/bin/view [ -| -s] [-l] [-L] [-R] [ -r  [filename]]
     [-S]  [-t  tag]  [-v]  [-V]  [-x]  [-wn]  [-C]  [+command  |
     -c command]  filename...

     /usr/xpg4/bin/vedit [ -| -s] [-l] [-L] [-R] [ -r [filename]]
     [-S]  [-t  tag]  [-v]  [-V]  [-x]  [-wn]  [-C]  [+command  |
     -c command]  filename...


DESCRIPTION

     The vi (visual) utility is a  display-oriented  text  editor
     based on an underlying line editor ex. It is possible to use
     the command mode of ex from within vi and to use the command
     mode of vi from within ex. The visual commands are described
     on this manual page; how to set options (like  automatically
     numbering lines and automatically starting a new output line
     when you type carriage return) and all ex line  editor  com-
     mands are described on the ex(1) manual page.

     When using vi, changes you make to the file are reflected in
     what  you  see  on your terminal screen. The position of the
     cursor on the screen indicates the position within the file.

     The view invocation is  the  same  as  vi  except  that  the
     readonly flag is set.

     The vedit invocation is intended for beginners.  It  is  the
     same  as  vi  except  that  the report flag is set to 1, the
     showmode and novice flags are set, and magic is turned  off.
     These defaults make it easier to learn how to use vi.


OPTIONS

     The following options are supporrted:

  Invocation Options
     The following invocation options are interpreted by vi (pre-
     viously documented options are discussed under NOTES):

     - | -s
           Suppresses all interactive user feedback. This is use-
           ful when processing editor scripts.

     -C    Encryption option. Same as the -x option, except  that
           vi  simulates  the  C  command of ex. The C command is
           like the X command of ex, except that all text read in
           is assumed to have been encrypted.

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

     -R    Readonly mode. The readonly flag  is  set,  preventing
           accidental overwriting of the file.

     -S    This option is used in conjunction  with  the  -t  tag
           option to tell vi that the tags file may not be sorted
           and that, if the binary  search  (which  relies  on  a
           sorted  tags  file) for tag fails to find it, the much
           slower linear search should also be  done.  Since  the
           linear  search  is  slow,  users  of  large tags files
           should ensure that the tags files  are  sorted  rather
           than  use  this  flag. Creation of tags files normally
           produces sorted tags  files.  See  ctags(1)  for  more
           information on tags files.

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

     -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  stan-
           dard  input,  the  input  will  be  echoed to standard
           error. This may be useful when processing ex  commands
           within shell scripts.

     -wn   Sets the default window size to n. This is useful when
           using the editor over a slow speed line.

     -x    Encryption option. When used, vi simulates the X  com-
           mand of ex 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. If an empty encryption  key is entered
           (that is, if the return key is pressed right after the
           prompt),  the  file  will  not be encrypted. This is a
           good way to decrypt a file erroneously encrypted  with
           a mistyped encryption key, such as a backspace or undo
           key.

     +command | -c command
           Begins editing by executing the specified editor  com-
           mand (usually a search or positioning command).

  /usr/xpg4/bin/vi
     If both the -t tag and the -c command options are given, the
     -t  tag  option  will  be processed first. That is, the file
     containing tag is selected by -t and  then  the  command  is
     executed.


OPERANDS

     The following operands are supported:

     filename
           A file to be edited.


COMMAND SUMMARY

     The vi command modes are summarized in this section.

  vi Modes
     Command
           Normal and initial mode. Other modes return to command
           mode upon completion. ESC (escape) is used to cancel a
           partial command.

     Input Entered by setting any of the following options:

           a A i I o O c C s S R

           Arbitrary text may then be entered. Input mode is nor-
           mally  terminated  with  the ESC character, or, abnor-
           mally, with an interrupt.

     Last line
           Reading input for : / ? or !. Terminate  by  typing  a
           carriage return. An interrupt cancels termination.

  Sample commands
     In the descriptions, CR stands for carriage return  and  ESC
     stands for the escape key.

     <-, ->

     down-arrow

     up-arrow
           arrow keys move the cursor

     h j k l
           same as arrow keys

     itextESC
           insert text

     cwnewESC
           change word to new

     easESC
           pluralize word (end of word;  append  s;  escape  from
           input state)

     x     delete a character

     dw    delete a word

     dd    delete a line

     3dd   delete 3 lines

     u     undo previous change

     ZZ    exit vi, saving changes

     :q!CR quit, discarding changes

     /textCR
           search for text

     ^U ^D scroll up or down

     :cmdCR
           any ex or ed command

  Counts before vi commands
     Numbers may be typed as a prefix to some commands. They  are
     interpreted in one of these ways:
     line/column number
           z  G  |

     scroll amount
           ^D  ^U

     repeat effect
           most of the rest

  Interrupting, canceling
     ESC   end insert or incomplete command

     DEL   (delete or rubout) interrupts

  File manipulation
     ZZ    if file modified, write and exit; otherwise, exit

     :wCR  write back changes

     :w!CR forced write, if permission originally not valid

     :qCR  quit

     :q!CR quit, discard changes

     :e nameCR
           edit file name

     :e!CR reedit, discard changes

     :e + nameCR
           edit, starting at end

     :e +nCR
           edit, starting at line n

     :e #CR
           edit alternate file

     :e! #CR
           edit alternate file, discard changes

     :w nameCR
           write file name

     :w! nameCR
           overwrite file name

     :shCR run shell, then return

     :!cmdCR
           run cmd, then return

     :nCR  edit next file in arglist

     :n argsCR
           specify new arglist

     ^G    show current file and line

     :ta tagCR
           position cursor to tag

     In general, any ex or ed command (such as substitute or glo-
     bal)  may  be  typed,  preceded by a colon and followed by a
     carriage return.

  Positioning within file
     F     forward screen

     ^B    backward screen

     ^D    scroll down half screen

     ^U    scroll up half screen

     nG    go  to  the  beginning  of  the  specified  line  (end
           default), where n is a line number

     /pat  next line matching pat

     ?pat  previous line matching pat

     n     repeat last / or ? command

     N     reverse last / or ? command

     /pat/+n
           nth line after pat

     ?pat?-n
           nth line before pat

     ]]    next section/function

     [[    previous section/function

     (     beginning of sentence

     )     end of sentence

     {     beginning of paragraph

     }     end of paragraph

     %     find matching ( ) or { }

  Adjusting the screen
     ^L    clear and redraw window

     ^R    clear and redraw window if ^L is -> key

     zCR   redraw screen with current line at top of window

     z-CR  redraw screen with current line at bottom of window

     z.CR  redraw screen with current line at center of window

     /pat/z-CR
           move pat line to bottom of window

     zn.CR use n-line window

     ^E    scroll window down one line

     ^Y    scroll window up one line

  Marking and returning
     ``    move cursor to previous context

     ''    move cursor to first non-white space in line

     mx    mark current position with the ASCII lower-case letter
           x

     `x    move cursor to mark x

     'x    move cursor to first non-white space in line marked by
           x

  Line positioning
     H     top line on screen

     L     last line on screen

     M     middle line on screen

     +     next line, at first non-white space character

     -     previous line, at first non-white space character

     CR    return, same as +

     down-arrow

     or j  next line, same column

     up-arrow

     or k  previous line, same column

  Character positioning
     ^     first non-white space character

     0     beginning of line

     $     end of line

     l or ->
           forward

     h or <-
           backward

     ^H    same as <- (backspace)

     space same as -> (space bar)

     fx    find next x

     Fx    find previous x

     tx    move to character following the next x

     Tx    move to character following the previous x

     ;     repeat last f, F, t, or T

     ,     repeat inverse of last f, F, t, or T

     n|    move to column n

     %     find matching ( ) or { }

  Words, sentences, paragraphs
     w     forward a word

     b     back a word

     e     end of word

     )     to next sentence

     }     to next paragraph

     (     back a sentence

     {     back a paragraph

     W     forward a blank-delimited word

     B     back a blank-delimited word

     E     end of a blank-delimited word

  Corrections during insert
     ^H    erase last character (backspace)

     ^W    erase last word

     erase your erase character, same as ^H (backspace)

     kill  your kill character, erase this line of input

     \     quotes your erase and kill characters

     ESC        ends insertion, back to command mode

     Control-C
           interrupt, suspends insert mode

     ^D    backtab one character; reset left margin of autoindent

     ^^D   caret (^)  followed  by  control-d  (^D);  backtab  to
           beginning of line; do not reset left margin of autoin-
           dent

     0^D   backtab to beginning of line;  reset  left  margin  of
           autoindent

     ^V    quote non-printable character

  Insert and replace
     a     append after cursor

     A     append at end of line

     i     insert before cursor

     I     insert before first non-blank

     o     open line below

     O     open line above

     rx    replace single character with x

     RtextESC
           replace characters

  Operators
     Operators are followed by a cursor  motion  and  affect  all
     text  that  would have been moved over. For example, since w
     moves over a word, dw deletes the word that would  be  moved
     over.  Double  the operator, for example dd, to affect whole
     lines.

     d     delete

     c     change

     y     yank lines to buffer

     <     left shift

     >     right shift

     !     filter through command

  Miscellaneous Operations
     C     change rest of line (c$)

     D     delete rest of line (d$)

     s     substitute characters (cl)

     S     substitute lines (cc)

     J     join lines

     x     delete characters (dl)

     X     delete characters before cursor dh)

     Y     yank lines (yy)

  Yank and Put
     Put inserts the text most recently deleted or  yanked;  how-
     ever,  if  a  buffer  is  named  (using the ASCII lower-case
     letters a - z), the text in that buffer is put instead.

     3yy   yank 3 lines

     3yl   yank 3 characters

     p     put back text after cursor

     P     put back text before cursor

     "xp   put from buffer x " .nr )I xy"n

           yank to buffer x " .nr )I xd"n
           delete into buffer x

  Undo, Redo, Retrieve
     u     undo last change

     U     restore current line

     .     repeat last change " .nr )I dp"n

           retrieve d'th last delete


USAGE

     See largefile(5) for the description of the behavior  of  vi
     and  view when encountering files greater than or equal to 2
     Gbyte ( 2**31 bytes).


ENVIRONMENT VARIABLES

     See environ(5) for descriptions of the following environment
     variables  that  affect  the  execution of vi: LANG, LC_ALL,
     LC_COLLATE, LC_CTYPE, LC_TIME, 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.


FILES

     /var/tmp
           default  directory  where  temporary  work  files  are
           placed;  it  can be changed using the directory option
           (see the ex(1) command)

     /usr/share/lib/terminfo/?/*
           compiled terminal description database

     /usr/lib/.COREterm/?/*
           subset of compiled terminal description database


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

  /usr/bin/vi, /usr/bin/view, /usr/bin/vedit
     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWcsu                     |
    |_____________________________|_____________________________|
    | CSI                         | Not enabled                 |
    |_____________________________|_____________________________|

  /usr/xpg4/bin/vi, /usr/xpg4/bin/view, /usr/xpg4/bin/vedit
     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWxcu4                    |
    |_____________________________|_____________________________|
    | CSI                         | Enabled                     |
    |_____________________________|_____________________________|
    | Interface Stability         | Standard                    |
    |_____________________________|_____________________________|


SEE ALSO

     intro(1), ctags(1), ed(1),  edit(1),  ex(1),  attributes(5),
     environ(5), largefile(5), standards(5)

     Solaris Advanced User's Guide


AUTHOR

     vi and ex were developed by The  University  of  California,
     Berkeley  California,  Computer Science Division, Department
     of Electrical Engineering and Computer Science.


NOTES

     Two options, although they continue to  be  supported,  have
     been  replaced  in  the documentation by options that follow
     the Command Syntax Standard (see  intro(1)).  An  -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 will not be
     possible.

     The editing environment defaults  to  certain  configuration
     options.  When  an editing session is initiated, vi 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.

     Tampering with  entries  in  /usr/share/lib/terminfo/?/*  or
     /usr/share/lib/terminfo/?/* (for example, changing or remov-
     ing an entry) can affect programs such as vi that expect the
     entry to be present and correct. In particular, removing the
     "dumb" terminal may cause unexpected problems.

     Software tabs using  ^T  work  only  immediately  after  the
     autoindent.

     Left and right shifts on intelligent terminals do  not  make
     use  of insert and delete character operations in the termi-
     nal.

     The standard Solaris version of vi 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 man2html