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.