move
h - left
l - right
j - down
k - up
w - forward one word
b - back one word
0 - begin of line
$ - end of line
:n - nth line (example, n:0, n:1000, etc)
edit modes
i - goto insert mode
a - goto append mode
esc - goto to normal mode
edit/normal mode
x - delete char
s - delete char/goto insert mode
dd - delete line
dw - delete word
d$ - delete to end of line
J - delete newline and move next line up
undo/redo
u - undo last change
:red - redo
. - repeat last action
cut/copy/paste
v - start region select
y - copy selected region
d - cut selected region
p - paste
ctrl-shift-v - to paste from non-vim clipboard
save
:w file-name - save file
:wq! - save file and quit
:q - quit with save confirm
:q! - quite without save confirm
search
:/search-string
n - next occurence
N - prev occurence
:set hls - turn on search highlighting
buffers
:e file-name - edit a new file
:e (enter) - tab completion on paths and allows picking from dir/file list
:Ex (enter) - similar to above
:e ./ - pick file to edit from current dir, or navigate elsewhere
:bn - next buffer
:bp - previous buffer
:b buffer-# - go to buffer#, useful with :ls
:bd - close buffer
:ls - buffer list
:b# - prior buffer
windows
ctrl-w s - split horiz
ctrl-w v - split vert
ctrl-w w - next window
ctrl-w c - close current window
netrw
options that need to be set from within vim for netrw
:set nocp
:filetype plugin on
vim (dir) # will open vim's dir mgr,
vim (dir)/ # requires a final slash to open remote dir's, doesn't hurt to always add it
:e (dir)/ # from within vim