VI Reference Sheet

Entering the editor:	vi  
			All "C" programs should end with the ".c" extension.
			All FORTRAN programs should end with the ".f" extension.
			All Pascal programs should end with the ".p" extension.

Leaving the editor:	ZZ
			This exits and saves your work.  Case matters. 
			See line editor commands to exit and not save.

Creating Text

        a 		Append at right of cursor.
        A 		Append at end of current line.
        i 		Insert at left of cursor.
        I 		Insert at beginning of current line.
        o 		Create text on newline after current line.
        O 		Create text on newline above current line.
        ESC  	 	EXIT INPUT OR APPEND MODE.

Positioning in the Window

        $ 		Last character on the current line.
        0 		First character on the current line.
        #-  		Move up # number lines.
        #+  		Move down # number lines.
        j 		Down arrow
        k 		Up arrow
        l 		Right arrow
        h 		Left arrow
        Arrow Keys 	The arrow keys work. 
                   	Do not hold them down or you'll be sorry.

Scrolling Text

        ctrl-f		Forward one window.
        ctrl-b		Backward one window.
        G		Go to last line of current file.
        #G		Go to the #th line of the current file.
        ctrl-g		Give the current line number and status.

Delete Commands

        x		Delete 1 character.
        #x		Delete # number of characters.
        dw		Delete 1 word.
        #dw		Delete # number of words.
        dd		Delete 1 line.
        #dd		Delete # number of lines.
        D		Delete from cursor to EOLN.

Replacing Text

        r		Replace 1 character.
        R		Replace only those characters typed over.
        C		Replace characters up to EOLN.
        ESC		EXIT REPLACE MODE.

Moving Text

        yw		Yank copy of current word into buffer.
        Y		Yank copy of current line into buffer.
        #Y		Yank copy of # number of lines into buffer.
        p		Place copy of buffer after cursor.  
			NOTE: All deleted text was placed in this same buffer.

Misc. vi Commands

        %		Match ('s or }'s.  
			Note:  Place cursor over a ( or { and the % command 
			will automatically take you to the matching ( or }.
        J		Join lines.
        ctrl-l		Refresh the screen
        u		UNDO LAST CHANGE!

Line Editor Style Commands 

        :q!		Quit the editor and discard all changes.
        :w  	Write out contents of editor to that filename.
        :set number	Number lines.
        :set nonumber	Un-number lines.
        :#		Go to line #.
        :/pattern	Search forward for pattern.
        :?pattern	Search backward for pattern.
        :/		Repeat last forward search.
        :?		Repeat last backward search.
        :#,#s/old/new/	Substitute old pattern for new pattern on 
			lines # thru #.

Substitute Examples

        :1,5s/wite/write/
			This changes the first occurrence of "wite" to "write" 
			on lines 1 thru 5.

        :1,5s/wite/write/g
			This changes every occurrence of "wite" to "write" on 
			lines 1 thru 5.  ( Global substitution ) 

        :1,$s/wite/write/gc
			This changes every occurrence of "wite" to "write" on 
			lines 1 thur EOF.  The "c" option gives the user a
			chance to confirm each change.  ( y or n )

        :10,15s/^/    /
			This changes Begining of line into four spaces on lines 
			10 thur 15.  (i.e. indents those lines)  The "^" is a 
			special character that matches beginning of line. 

        :.,12s/$/ ;/
			This changes End of line into a space and a semi-colon 
			on the current line thur line 12.  The "$" is a special 
			character that matches End of line.  The "." is a 
			shorthand way say "current line".