Vim Cheatsheet

vim

Put together a quick cheat-sheet from things I’ve copied and saved over the years. I come back to these notes from time to time and thought it time to finally share them.

File management

:e              reload file
:q              quit
:q!             quit without saving changes
:w              write file
:w {file}       write new file
:x              write file and exit

Movement

    k
  h   l         basic motion
    j

w               next start of word
W               next start of whitespace-delimited word
e               next end of word
E               next end of whitespace-delimited word
b               previous start of word
B               previous start of whitespace-delimited word
0               start of line
$               end of line
gg              go to first line in file
G               go to end of file
gk		        move down one displayed line
gj		        move up one displayed line

Nvaigation

cw — change to next word
cc — change entire line
ce — change from cursor to end of word
c$ — change to end of line
ci” — change inside double quotes
ca” — change around double quotes
cfx — change until next found occurrence of x

Insertion

To exit from insert mode use Esc or Ctrl-C

Enter insertion mode and:

a               append after the cursor
A               append at the end of the line
i               insert before the cursor
I               insert at the beginning of the line
o               create a new line under the cursor
O               create a new line above the cursor
R               enter insert mode but replace instead of inserting chars
:r {file}       insert from file

Editing

u               undo
yy              yank (copy) a line
y{motion}       yank text that {motion} moves over
p               paste after cursor
P               paste before cursor
<Del> or x      delete a character
dd              delete a line
d{motion}       delete text that {motion} moves over

Search and replace with the :substitute (aka :s) command

:s/foo/bar/	replace the first match of 'foo' with 'bar' on the current line only
:s/foo/bar/g	replace all matches (`g` flag) of 'foo' with 'bar' on the current line only
:%s/foo/bar/g	replace all matches of 'foo' with 'bar' in the entire file (`:%s`)
:%s/foo/bar/gc	ask to manually confirm (`c` flag) each replacement

Preceding a motion or edition with a number repeats it ‘n’ times

Examples:

50k         moves 50 lines up
2dw         deletes 2 words
5yy         copies 5 lines
42G         go to line 42

Hope this cheat-sheet helps! If you want more, this cheat-sheet is amazing: Vim Cheat Sheet