Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ vi(1) — 4D1 2.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ed(1)

edit(1)

ex(1)



     VI(1)                                                       VI(1)



     NAME
          vi - screen-oriented (visual) display editor based on ex

     SYNOPSIS
          vi [ -ttag ] [ -r file ] [ -wn ] [ -R ] [ -x ] [ +command ]
          name ...
          view [ -ttag ] [ -r file ] [ -wn ] [ -R ] [ -x ] [ +command
          ] name
          vedit [ -ttag ] [ -r file ] [ -wn ] [ -R ] [ -x ] [ +command
          ] name

     DESCRIPTION
          vi (visual) is a display-oriented text editor based on an
          underlying line editor ex(1).  It is possible to use the
          command mode of ex from within vi and vice-versa.

          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.

     INVOCATION
          The following invocation options are interpreted by vi:

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

          -rfile         Recover file after an editor or system crash.
                         If file is not specified a list of all saved
                         files will be printed.

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

          -R             Read only mode; the readonly flag is set,
                         preventing accidental overwriting of the
                         file.

          +command       The specified ex command is interpreted
                         before editing begins.

          -x             Encryption option; when this option is used,
                         the file will be encrypted as it is being
                         written and will require an encryption key to
                         be read (see crypt(1)).  Also, see the
                         WARNING section at the end of this manual
                         page.

          The name argument indicates files to be edited.

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



     Page 1                                        (last mod. 8/20/87)





     VI(1)                                                       VI(1)



          The vedit invocation is intended for beginners.  The report
          flag is set to 1, and the showmode and novice flags are set.
          These defaults make it easier to get started learning the
          editor.

     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 the following options a i A I o O
                         c C s S R.  Arbitrary text may then be
                         entered. Input mode is normally terminated
                         with ESC character, or abnormally with
                         interrupt.

          Last line      Reading input for : / ? or !; terminate with
                         CR to execute, interrupt to cancel.

     COMMAND SUMMARY
        Sample commands
          <- v ^ ->         arrow keys move the cursor
          h j k l           same as arrow keys
          itextESC          insert text abc
          cwnewESC          change word to new
          easESC            pluralize word
          x                 delete a character
          dw                delete a word
          dd                delete a line
          3dd               ... 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
          :ex 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 cmd
           DEL       (delete or rubout) interrupts
           ^L        reprint screen if DEL scrambles it
           ^R        reprint screen if ^L is -> key

        File manipulation
           :wCR            write back changes



     Page 2                                        (last mod. 8/20/87)





     VI(1)                                                       VI(1)



           :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
                           synonym for :e #

           :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       to tag file entry tag
           ^]              :ta, following word is tag
          In general, any ex or ed command (such as substitute or
          global) may be typed, preceded by a colon and followed by a
          CR.

        Positioning within file
           ^F          forward screen
           ^B          backward screen
           ^D          scroll down half screen
           ^U          scroll up half screen
           G           go to specified line (end default)
           /pat        next line matching pat
           ?pat        prev line matching pat
           n           repeat last / or ?
           N           reverse last / or ?
           /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
           ^R            retype, eliminate @ lines
           zCR           redraw, current at window top
           z-CR          ... at bottom
           z.CR          ... at center
           /pat/z-CR     pat line at bottom
           zn.CR         use n line window





     Page 3                                        (last mod. 8/20/87)





     VI(1)                                                       VI(1)



           ^E            scroll window down 1 line
           ^Y            scroll window up 1 line

        Marking and returning
           ``      move cursor to previous context
           ''      ... at first non-white in line
           mx      mark current position with letter x
           `x      move cursor to mark x
           'x      ... at first non-white in line


        Line positioning
           H          top line on screen
           L          last line on screen
           M          middle line on screen
           +          next line, at first non-white
           -          previous line, at first non-white
           CR         return, same as +
           v or j     next line, same column
           ^ or k     previous line, same column

        Character positioning
           ^           first non white
           0           beginning of line
           $           end of line
           h or ->     forward
           l or <-     backwards
           ^H          same as <-
           space       same as ->
           fx          find x forward
           Fx          f backward
           tx          upto x forward
           Tx          back upto x
           ;           repeat last f F t or T
           ,           inverse of ;
           |           to specified column
           %           find matching ( { ) or }

        Words, sentences, paragraphs
           w       word forward
           b       back word
           e       end of word
           )       to next sentence
           }       to next paragraph
           (       back sentence
           {       back paragraph
           W       blank delimited word
           B       back W
           E       to end of W


        Corrections during insert



     Page 4                                        (last mod. 8/20/87)





     VI(1)                                                       VI(1)



           ^H        erase last character
           ^W        erase last word
           erase     your erase, same as ^H
           kill      your kill, erase input this line
           \         quotes ^H, your erase and kill
           ESC       ends insertion, back to command
           DEL       interrupt, terminates insert
           ^D        backtab over autoindent
           ^^D       kill autoindent, save for next
           0^D       ... but at margin next also
           ^V        quote non-printing character

        Insert and replace
           a            append after cursor
           i            insert before cursor
           A            append at end of line
           I            insert before first non-blank
           o            open line below
           O            open above
           rx           replace single char 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, e.g., dd to affect whole lines.
           d       delete
           c       change
           y       yank lines to buffer
           <       left shift
           >       right shift
           !       filter through command
           =       indent for LISP

        Miscellaneous Operations
           C       change rest of line (c$)
           D       delete rest of line (d$)
           s       substitute chars (cl)
           S       substitute lines (cc)
           J       join lines
           x       delete characters (dl)
           X       ... before cursor (dh)
           Y       yank lines (yy)


        Yank and Put
          Put inserts the text most recently deleted or yanked.
          However, if a buffer is named, the text in that buffer is
          put instead.
           p       put back text after cursor
           P       put before cursor



     Page 5                                        (last mod. 8/20/87)





     VI(1)                                                       VI(1)



           "xp     put from buffer x
           "xy     yank to buffer x
           "xd     delete into buffer x

        Undo, Redo, Retrieve
           u       undo last change
           U       restore current line
           .       repeat last change
           "dp     retrieve d'th last delete

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

     FILES
          /usr/lib/terminfo/?/*    compiled terminal description
          database
          /usr/lib/.COREterm/?/*   subset of compiled terminal
          description database, supplied on hard disk d

     SEE ALSO
          ed(1), edit(1), ex(1).
          User's Guide.

     WARNING
          The -x option is provided with the Security Administration
          Utilities, which is available only in the United States.

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

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

     ORIGIN
          AT&T V.3










     Page 6                                        (last mod. 8/20/87)



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026