vi (vim)   E D I T O R  ...  A    Q U I C K    R E F E R E N C E    
To start the vi editor, type vi [file-name] at the linux$ prompt. When vi starts
you are in the COMMAND mode.  To add text, you must first get into INPUT mode.
To delete, change, or move text, you must return to COMMAND mode.  There are
several ways to get into INPUT mode, as described below.  To return to the
COMMAND mode, press the ESC (escape) key.  If you get stuck or confused while 
learning the vi editor, press ESC.  

O P E N I N G,   S A V I N G,  and  C L O S I N G    F I L E S   U S I N G   vi 

        vim [file] [RETURN]      Open a file using the vim version of vi
        ZZ                       Exit vi, saving changes

                          I N P U T    M O D E                          
Note: To get into INPUT mode, type any of these characters from COMMAND mode:
      i I a A o O R s S c C .   Press ESC (escape) to return to COMMAND mode.

        i  [text]                Insert text before cursor
        I  [text]                Insert text at start of line
        a  [text]                Append text after cursor
        A  [text]                Append text at end of line
        o  [text]                Open a new line below the cursor
        O  [text]                Open a new line above the cursor
        r  [char]                Replace a single character with [char>
        r  [RETURN]              Split a line at the cursor
        R  [text]                Replace old text
        s  [text]                Substitute one or more characters for a char.
        S  [text]                Substitute an entire line
        cw [text]                Change a word to [text]
        cb [text]                Change from start of word to cursor
        ce [text]                Change from cursor to end of word
        C  [text]                Change from cursor to end of line

                         C O M M A N D    M O D E                        
Note: To repeat a command N times enter:            N[command]
      To repeat the last modification, type:        . (period)
      To  undo  the last modification, type:        u 

--------------------   M O V I N G   T H E   C U R S O R   ---------------------
Note: The arrow keys work but the mouse does NOT move the cursor.

        h                        Move  left one space
        j                        Move  down one line
        k                        Move   up  one line
        l                        Move right one space
        0                        Move to start of line (zero)
        $                        Move to  end  of line
        [n]G   or  :[n]          Move to the n-th line in the file
        G                        Move to the last line in the file
        H                        Move to first  line on screen
        L                        Move to  last  line on screen
        M                        Move to middle line on screen
        w                        Move to beginning of next word
        (                        Move to beginning of sentence
        )                        Move to   end    of sentence
        {                        Move to beginning of paragraph
        }                        Move to   end    of paragraph
------------------------   D E L E T I N G   T E X T   -------------------------
        x                        Delete a single character at the cursor
        dd                       Delete an entire line and put into buffer
        D                        Delete from cursor to end of line
        dw                       Delete from cursor to start of next word
        df[char]                 Delete from cursor through [char]
        dt[char]                 Delete from cursor to, but not including [char]
        dH                       Delete from top of screen to current line
        dL                       Delete from current line to bottom of screen

------------   Y A N K I N G   A N D   P U T T I N G   T E X T   ---------------
        yy or Y                  Copy a line into buffer without deleting
        yw                       Copy a word into buffer without deleting
        p                        Put last yank or delete  after the cursor
        P                        Put last yank or delete before the cursor
        xp                       Reverse two characters
        ddp                      Reverse two lines
        J                        Join the next line to the current line

--------------------   P A T T E R N   S E A R C H I N G   ---------------------
        /[pattern] [RETURN]     Search forward for [pattern]
        n   or   / [RETURN]     Repeat the last search forward
        ?[pattern] [RETURN]     Search backward for [pattern]
        N   or   ? [RETURN]     Repeat the last search backward
        '' (2 single quotes)    Return to previous cursor position
        :1,$ s/[old]/[new]/g    Globally search for and replace [old] with [new]

----------   S C R E E N    B Y   S C R E E N   S C R O L L I N G   ------------
        [CTRL] U                Scroll  up  half a screen
        [CTRL] D                Scroll down half a screen
        [CTRL] F                Scroll  forward one screen
        [CTRL] B                Scroll backward one screen
        z [RETURN]              Redraw the screen, cursor line at top

-----------------   ex    E D I T O R    C O M M A N D S   --------------
Note: These commands (issued from COMMAND mode) belong to ex, a line editor.  
        :wq [RETURN]            Write (save) the file to disk and quit vi
        :w  [RETURN]            Write (save) the file to disk without quitting
        :q! [RETURN]            Quit without saving the last changes  
        :f  [RETURN]            Show filename and current line
        :r [file] [RETURN]      Read [file] into buffer at cursor position
        :! [command] [RETURN]   Execute a UNIX command without quitting vi

                       U N I X    C O M M A N D S                      
Note: These commands are not part of the vi editor.  
      Issue these commands from the unix% prompt.  

        ls, ls -l, ls -la [dir] List contents of a directory
        cp [file1] [file2]      Copy [file1] to [file2]
        mv [file2] [file2]      Move [file1] to [file2]
        rm [file]               Remove (delete) a file
        mkdir [dir]             Create a new directory
        cd [dir]                Change the current directory
        rmdir [dir]             Remove (delete) a directory
        [CTRL] z                Stop the current process
        bg                      Resume a stopped process in the background
        ps -a                   List all processes and characteristics
        kill -9 [job number]    Kill a stopped job (process, or program)
        man [command]           Display manual pages about a command, such as vi
        !!                      Repeat the last command