Basic 'vi Editor' Commands

     Controlling The Screen Display of Your Session    Moving the Cursor    Paging Through Text    Special Pattern Characters    Searching Through Text    Creating Text    Modifying Text      Making Corrections During Text Insertions    Ending Editing Sessions  Adding Comments   Using ex Commands From Within vi  

Controlling The Screen Display of Your Session
Repaint the current screen {ctrl-l}
Display line #, # of lines, etc.. {ctrl-g}

Moving the Cursor
Beginning of current line 0 or ^
Beginning of first screen line H
Beginning of last screen line L
Beginning of middle screen line M
Down one line j, {return}, +
End of current line $
Left one character h, {ctrl-h}
Left to beggining of word b, B
Right one character l, {space}
Right to end of word e, E
Right to beginning of word w, W
Up one line k, -
Beginning of next sentence )
Beginning of previous sentence (

Paging Through Text
Back one screen {ctrl-b}
Down half a screen {ctrl-d}
Down one screen {ctrl-f}
Forware to end of file G
Move cursor to specified line line no. G
Up half a screen {ctrl-j}

Special Pattern Characters
Beginning of line ^
End of line $
Any character except newline .
Any number of the preceding character *
Any set of characters (except newline) .*

Searching Through Text
Beginning of line ^
Backward for pattern ?pattern
Forward for pattern /pattern
Repeat previous search n
Reverse direction of previous search N
Show *all* lines containing pattern :beg,endg/pattern/p
:1,$g/compiler/p Will print all lines with the pattern compiler.
Substitute patt2 for all patt1 found. :beg,ends/patt1/patt2/g
:%s/notfound/found/g Will change all occurences of notfound to found.

Creating Text
Append text after cursor a
Append text after end of line A
Insert text before cursor i
Insert text at beginning of line I
Open new line after current line o
Open new line before current line O
Take next character literally (i.e. control characters...) and display it {ctrl-v}

Modifying Text
Change current word cw, cW
Change current line (cursor to end) C
Delete character (cursor forward) x
Delete character (before cursor) X
Delete word dw, dW
Delete line dd
Delete text to end of line D
Duplicate text (use yank and put)
Join current line with next line J
Move text (use delete and put)
Put buffer text after/below cursor p
Put buffer text before/above cursor P
Repeat last modification command .
Replace current character r
Replace text to end of line R
Substitute text for character s
Undo your previous command u
Transpose characters xp
Yank (copy) word into buffer yw
Yank (copy) current line into buffer Y

Making Corrections During Text Insertions
Change current word cw, cW
Overwrite last character {delete}
Overwrite last word {ctrl-w}


Ending Your Editing Sessions
Quit (no changes made) :q
Quit and save changes ZZ, :wq
Quit and discard changes :q!

Using ex Commands From Within vi
Copy specified lines :co, t
Display line numbers :set nu
Disable display of line numbers :set nonu
Move lines after specified line :m
Read file in after specified line :r filename
Review current editor options :set
Review editor options :set all
Set new editor option :set option
Write changes to original file :w
Write to specified file :w filename
Force write to a file :w! filename
Adding Comments
   Put a # sign to start the comment #