Vim tips

Vim tips & shortcuts.

i                 => insert before current letter; go into insert mode from command mode
a                 => insert after current letter; go into insert mode from command mode
I                 => insert at beginning of current line
A                 => insert at end of current line
o                 => add new line below current line
O                 => add new line above current line
u                 => undo
ctrl+r            => redo undo
r                 => replace
v                 => visual mode
:                 => command mode
:set number       => show line number
:set nonumber     => hide line number
cc                => change/replace entire line, same as S
cw                => change/replace the word
c$                => change/replace to the end of current line
dw                => delete a word
d$                => delete until end of current line, same as D
dG                => delete until end of current file
dd                => delete current line
ndd               => delete n lines (where n is number of lines)
yy                => copy current line
nyy               => copy n lines
yw                => copy word
ve                => select to end of word
y$                => copy to end of line
y0                => copy to start of line
p                 => paste copied after cursor
P                 => paste copied before cursor
x                 => delete from current letter and forward (including current letter)
X                 => delete from current letter and afterward (excluding current letter)
ESC               => go into command mode from insert mode
h                 => move left
l                 => move right
j                 => move down
k                 => move up
N[hljk]           => move N letters left/right; move N lines down/up
$                 => move to end of current line
0                 => move to start of current line (zero, not O)
w                 => move word forward (including whitespace)
e                 => move word forward (excluding whitespace)
ctrl+f            => move page forward
ctrl+b            => move page back
G                 => move to bottom of file
gg                => move to start of file
nG                => move n lines forward
J                 => delete the line break at the end of current line
>                 => shift text right
<                 => shift text left
:lineno           => go to number line
ctrl+g            => show current location and file status
:w                => write/save
:q                => quite
:q!               => quite without saving changes, same as ZQ
:wq               => quite and write/save, same as ZZ or :x
ctrl+v            => column/block selection
/                 => search forward; n => repeat search forward; N => repeat search backward
?                 => search backward; n => repeat search forward; N => repeat search backward
:s/old/new/g      => substitute old with new for all occurrences in the line
:%s/old/new/g     => substitute old with new for all occurrences in the file
:%s/old/new/gc    => substitute old with new for all occurrences in the file with confirm prompt
:s/old/new        => substitute old with new for first occurrence in the line
:#,#s/old/new/g   => substitute old with new for all occurrences in lines #,# (range)

References

vim