Command Description
Save and Quit
:w Save changes
:wq or :x Save changes and quit
:q! Quit without saving
u Undo last change
Move Cursor
^ Move cursor to the beginning of current line
$ Move cursor to the end of current line
w Move cursor to the beginning of next word
b Move cursor to the beginning of preceding word
Delete
dw Delete single word beginning with the character under cursor
dd Delete current line
d$ Delete the remaining of line beginning with the character under cursor
:1,$d$ Delete all the lines
:1,Nd Delete 1 to N lines
:Ndd Delete the next N lines, including the current line
Copy and Paste
yw Copy a word
yy Copy current line
Nyy Copy the next N lines, including the current line
:1,Ny Copy 1 to N lines
p Paste buffer after the current line
:r filename Read file named filename and insert after current line
Search and Replace
/string Search for a string. Press n, cursor moves to the next occurrence; Press N, cursor moves to the preceding occurrence.
:s/old/new/g Find each occurrence of ‘old’ on the current line and replace it with ‘new’
:%s/old/new/g Find each occurrence of ‘old’ throughout the file and replace it with ‘new’
Display
:set number Display line numbers
:vsplit filename Split vi vertically and display file named filename on the left half
ctrl-w ctrl-w Move cursor between split screens