Movimento do cursor

h, j, k, l           esquerda, baixo, cima, direita
w / b                próxima / anterior palavra
e                    fim da palavra
0 / $                início / fim da linha
gg / G               primeira / última linha do documento
5gg ou 5G            ir para linha 5
fx                   pular para próxima ocorrência do caractere x
%                    pular para par correspondente (), [], {}
Ctrl+d / Ctrl+u      mover meia página para baixo / cima
Ctrl+f / Ctrl+b      mover página inteira para baixo / cima
zz                   centralizar cursor na tela

Modo de inserção

i / a                inserir antes / depois do cursor
I / A                inserir no início / fim da linha
o / O                nova linha abaixo / acima
ea                   inserir no fim da palavra
Ctrl+h               apagar caractere antes do cursor
Ctrl+w               apagar palavra antes do cursor
Ctrl+n / Ctrl+p      autocompletar próxima / anterior correspondência
Esc                  sair do modo de inserção

Editando

r                    substituir um único caractere
R                    modo substituição (até pressionar ESC)
J                    juntar linha abaixo com a atual
cc                   substituir linha inteira
cw                   substituir até o fim da palavra
ciw                  substituir palavra inteira
s                    deletar caractere e entrar em modo inserção
u                    desfazer
Ctrl+r               refazer
.                    repetir último comando

Modo visual (seleção)

v                    iniciar modo visual
V                    selecionar linha inteira
Ctrl+v               modo de bloco visual
aw                   selecionar uma palavra
ab / aB              selecionar bloco com () / {}
ib / iB              selecionar bloco interno com () / {}
> / <                indentar / desindentar seleção
y                    copiar seleção
d                    deletar seleção
~                    alternar maiúscula/minúscula

Copiar e colar

yy                   copiar linha
2yy                  copiar 2 linhas
yw                   copiar palavra
yiw                  copiar palavra sob o cursor
y$                   copiar até o fim da linha
p / P                colar depois / antes do cursor
dd                   deletar (cortar) linha
2dd                  deletar 2 linhas
dw                   deletar palavra
diw                  deletar palavra sob o cursor
d$ ou D              deletar até o fim da linha
x                    deletar caractere

Registradores

:reg                 mostrar conteúdo dos registradores
"xy                  copiar para registrador x
"xp                  colar do registrador x
"+y                  copiar para área de transferência do sistema
"+p                  colar da área de transferência do sistema

Registradores especiais:

0                    último yank
"                    último delete ou yank
%                    nome do arquivo atual
/                    último padrão de busca
:                    último comando

Marcadores

:marks               listar todos os marcadores
ma                   marcar posição atual como 'a'
`a                   pular para o marcador 'a'
`0                   ir para onde o Vim foi fechado
`.                   ir para última alteração
``                   ir para posição anterior ao último salto
:jumps               lista de saltos
Ctrl+o / Ctrl+i      navegar para posição anterior / próxima

Macros

qa                   gravar macro 'a'
q                    parar gravação do macro
@a                   executar macro 'a'
@@                   re-executar último macro

Buscar e substituir

/pattern             buscar por padrão (para frente)
?pattern             buscar por padrão (para trás)
n / N                próxima / anterior ocorrência
:%s/old/new/g        substituir todas ocorrências de old por new
:%s/old/new/gc       substituir todas ocorrências com confirmação
:noh                 remover destaque da busca

Comandos de intervalo

:.,$d                deletar da linha atual até o fim do arquivo
:.,1d                deletar da linha atual até o início
:3,5d                deletar linhas 3 a 5
:g/pattern/d         deletar todas linhas que contêm o padrão
:g!/pattern/d        deletar todas linhas que NÃO contêm o padrão

Indentar texto

>> / <<              indentar / desindentar uma linha
>% / <%              indentar / desindentar bloco (cursor em {})
3==                  re-indentar 3 linhas
=iB                  re-indentar bloco interno {}
gg=G                 re-indentar arquivo inteiro
]p                   colar e ajustar indentação

Trabalhando com múltiplos arquivos

:e arquivo           editar um arquivo
:bn / :bp            ir para próximo / anterior buffer
:bd                  deletar buffer (fechar arquivo)
:ls                  listar todos os buffers abertos
:sp arquivo          dividir janela horizontalmente
:vsp arquivo         dividir janela verticalmente
Ctrl+w w             trocar entre janelas
Ctrl+w q             fechar janela atual
Ctrl+w hjkl          mover cursor para janela (esquerda/baixo/cima/direita)

Abas

:tabnew arquivo      abrir arquivo em nova aba
gt / gT              mover para próxima / anterior aba
:tabc                fechar aba atual
:tabo                fechar todas as abas exceto a atual
:tabdo comando       executar comando em todas as abas

Folding (dobras de código)

zf                   criar fold manualmente
za                   alternar fold sob o cursor
zo / zc              abrir / fechar fold
zr / zm              abrir / fechar todos os folds em um nível
zd                   deletar fold sob o cursor

Busca em múltiplos arquivos

:vimgrep /pattern/ **/*    buscar padrão em todos arquivos
:cn / :cp                  pular para próxima / anterior ocorrência
:cope                      abrir janela de resultados
:ccl                       fechar janela de resultados

Salvar e sair

:w                   salvar arquivo
:w !sudo tee %       salvar arquivo usando sudo
:wq ou :x ou ZZ      salvar e sair
:q                   sair (falha se houver mudanças não salvas)
:q! ou ZQ            sair sem salvar
:wqa                 salvar e sair em todas as abas

Comandos globais

:h palavra           abrir ajuda para palavra
:sav arquivo         salvar arquivo como
:clo                 fechar painel atual
:ter                 abrir janela de terminal
K                    abrir manual da palavra sob o cursor

Baseado no vim-cheat-sheet por rtorr (Licença MIT). Versão original em vim.rtorr.com/lang/pt_br.