Neovim Cheatsheet

0.10

Os atalhos e comandos essenciais do Neovim que você vai realmente usar

Português: 2026-03-29

Neovim é um editor de texto moderno e extensível construído sobre as bases do Vim. Se você já assistiu alguém voar pelo código sem tocar no mouse e pensou "eu quero isso," você está no lugar certo. Neovim mantém tudo que tornou o Vim lendário — edição modal, comandos combináveis, uma linguagem para manipular texto — e adiciona scripting Lua nativo, suporte LSP embutido e um ecossistema de plugins que o fazem parecer uma IDE completa.

A curva de aprendizado é real. Não tem como fugir. Sua primeira semana vai parecer mais lenta que qualquer editor que você usava antes, e você provavelmente vai voltar para o VS Code pelo menos uma vez. Isso é normal. O insight chave é que Neovim não é sobre memorizar centenas de atalhos — é sobre aprender uma pequena gramática de motions e operadores que se combinam. Quando d (delete) + w (word) clicar como "deletar palavra," você vai perceber que c (change) + w funciona também, e y (yank) + w, e de repente você não está mais memorizando atalhos. Você está falando uma linguagem.

Este cheatsheet cobre o que você vai realmente usar no dia a dia. Não é exaustivo — a documentação oficial é a referência real — mas deve te deixar produtivo e ajudar a construir a memória muscular que faz o Neovim valer a pena. Incluímos bindings comuns de LSP e Telescope porque a maioria das configurações modernas de Neovim os usa, mas seus keymaps específicos podem variar dependendo da sua config. Na dúvida, :map mostra o que está vinculado onde.

Modos

O poder do Neovim vem do seu design modal. Você está sempre em um desses modos, e saber como se mover entre eles é a base de todo o resto.

Alternando Modos
Esc
Retornar ao modo Normal de qualquer modo
i
Inserir antes do cursor
a
Inserir depois do cursor (append)
I
Inserir no início da linha
A
Inserir no final da linha
o
Abrir nova linha abaixo e entrar no modo Insert
O
Abrir nova linha acima e entrar no modo Insert
v
Entrar no modo Visual (seleção por caractere)
V
Entrar no modo Visual Line (selecionar linhas inteiras)
Ctrl-v
Entrar no modo Visual Block (seleção por coluna)
:
Entrar no modo Command-line
R
Entrar no modo Replace (sobrescrever caracteres)

Se você continua pressionando Esc e nada acontece, pode estar em um buffer de terminal. Tente Ctrl-\ seguido de Ctrl-n para voltar ao modo Normal.

Navegação e Motions

Motions são metade da gramática combinável do Neovim. Aprenda esses e você pode combiná-los com qualquer operador.

Movimento Básico
hjkl
Esquerda / baixo / cima / direita
w
Pular para o início da próxima palavra
b
Pular para o início da palavra anterior
e
Pular para o final da palavra atual/próxima
WBE
Mesmo que w/b/e mas pula pontuação (por WORD)
Movimento na Linha
0
Pular para o início da linha
^
Pular para o primeiro caractere não-branco
$
Pular para o final da linha
f{char}
Pular para frente até {char} na linha atual
F{char}
Pular para trás até {char} na linha atual
t{char}
Pular para logo antes de {char} para frente
T{char}
Pular para logo depois de {char} para trás
;
Repetir último f/F/t/T para frente
,
Repetir último f/F/t/T para trás
Movimento no Arquivo e Tela
gg
Ir para a primeira linha do arquivo
G
Ir para a última linha do arquivo
{number}G
Ir para a linha {number}
%
Pular para o par correspondente (parêntese, chave, colchete)
Ctrl-d
Rolar meia página para baixo
Ctrl-u
Rolar meia página para cima
Ctrl-f
Rolar uma página inteira para baixo
Ctrl-b
Rolar uma página inteira para cima
zz
Centralizar linha atual na tela
zt
Mover linha atual para o topo da tela
zb
Mover linha atual para o final da tela
{
Pular para a linha em branco anterior (parágrafo acima)
}
Pular para a próxima linha em branco (parágrafo abaixo)

f e t são atalhos subestimados. Em vez de pressionar w cinco vezes, tente f( para pular direto para o próximo parêntese. Quando isso clicar, você vai se perguntar como viveu sem.

Operadores de Edição

Operadores se combinam com motions para formar comandos. Este é o verdadeiro superpoder: aprenda alguns operadores e alguns motions, e você pode fazer dezenas de coisas.

Operadores Principais
d{motion}
Deletar (recortar) texto coberto pelo motion
c{motion}
Alterar — deletar texto e entrar no modo Insert
y{motion}
Copiar (yank) texto coberto pelo motion
>{motion}
Indentar para a direita
<{motion}
Indentar para a esquerda
={motion}
Auto-indentar / reformatar
gu{motion}
Converter para minúsculas
gU{motion}
Converter para maiúsculas
Combinações Comuns
dd
Deletar linha inteira
cc
Alterar linha inteira
yy
Copiar linha inteira
D
Deletar do cursor até o final da linha
C
Alterar do cursor até o final da linha
x
Deletar caractere sob o cursor
s
Deletar caractere e entrar no modo Insert
r{char}
Substituir caractere sob o cursor por {char}
J
Juntar linha atual com a linha abaixo
~
Alternar maiúscula/minúscula do caractere sob o cursor
Objetos de Texto (usar com operadores)
iw
Palavra interna (apenas a palavra, sem espaço ao redor)
aw
Uma palavra (palavra mais espaço ao redor)
i"
Dentro de aspas duplas
i'
Dentro de aspas simples
i)
Dentro de parênteses
i}
Dentro de chaves
i]
Dentro de colchetes
it
Dentro de tag HTML/XML
ip
Parágrafo interno

ci" (alterar dentro de aspas) é provavelmente o combo que você mais vai usar. Cursor em qualquer lugar dentro de uma string entre aspas? ci" limpa o conteúdo e te coloca no modo Insert. Funciona com parênteses (ci(), chaves (ci{), colchetes (ci[) e tags (cit).

Desfazer, Refazer e Registradores

Desfazer e Repetir
u
Desfazer última alteração
Ctrl-r
Refazer
.
Repetir última alteração — incrivelmente poderoso
Registradores e Clipboard
p
Colar depois do cursor
P
Colar antes do cursor
"{reg}y{motion}
Copiar para o registrador {reg}
"{reg}p
Colar do registrador {reg}
"+y{motion}
Copiar para o clipboard do sistema
"+p
Colar do clipboard do sistema
:reg
Mostrar conteúdo de todos os registradores

O comando . (ponto) repete sua última alteração. Faça uma edição uma vez, depois mova para o próximo ponto e pressione . para aplicá-la novamente. Este é um dos recursos mais subestimados do Vim e torna edições repetitivas quase sem esforço.

Busca e Substituição

Busca
/{pattern}
Buscar para frente
?{pattern}
Buscar para trás
n
Pular para a próxima correspondência
N
Pular para a correspondência anterior
*
Buscar para frente a palavra sob o cursor
#
Buscar para trás a palavra sob o cursor
:noh
Limpar destaque de busca
Substituição (Buscar e Substituir)
:s/old/new/
Substituir primeira ocorrência na linha atual
:s/old/new/g
Substituir todas as ocorrências na linha atual
:%s/old/new/g
Substituir todas as ocorrências no arquivo
:%s/old/new/gc
Substituir tudo no arquivo com confirmação
:'<,'>s/old/new/g
Substituir na seleção visual

Janelas e Splits

Criando Splits
Ctrl-wv
Dividir janela verticalmente
Ctrl-ws
Dividir janela horizontalmente
:vsp {file}
Split vertical e abrir arquivo
:sp {file}
Split horizontal e abrir arquivo
Navegando entre Splits
Ctrl-wh
Mover para o split à esquerda
Ctrl-wj
Mover para o split abaixo
Ctrl-wk
Mover para o split acima
Ctrl-wl
Mover para o split à direita
Ctrl-ww
Alternar entre splits
Redimensionando e Gerenciando Splits
Ctrl-w=
Igualar tamanho de todos os splits
Ctrl-w_
Maximizar altura do split atual
Ctrl-w|
Maximizar largura do split atual
Ctrl-wo
Fechar todos os splits exceto o atual
Ctrl-wq
Fechar split atual
Ctrl-wT
Mover split atual para uma nova aba

Buffers e Abas

Buffers são como o Neovim rastreia arquivos abertos. Cada arquivo que você abre é um buffer, mesmo que não esteja visível. Abas no Neovim são mais como "layouts" do que abas de navegador — cada aba pode ter seu próprio arranjo de splits.

Buffers
:ls
Listar buffers abertos
:b {name}
Mudar para buffer por nome parcial (tab-complete funciona)
:b {number}
Mudar para buffer por número
:bn
Próximo buffer
:bp
Buffer anterior
:bd
Fechar buffer atual
:e {file}
Abrir arquivo em novo buffer
Abas
:tabnew
Abrir nova aba
:tabnew {file}
Abrir arquivo em nova aba
gt
Ir para a próxima aba
gT
Ir para a aba anterior
{number}gt
Ir para a aba {number}
:tabclose
Fechar aba atual

Marcas e Pulos

Marcas permitem salvar posições em um arquivo e voltar a elas. Marcas minúsculas são locais ao arquivo, marcas maiúsculas funcionam entre arquivos.

Marcas
m{a-z}
Definir uma marca local
m{A-Z}
Definir uma marca global (funciona entre arquivos)
'{a-z}
Pular para a linha da marca
`{a-z}
Pular para a posição exata da marca
:marks
Listar todas as marcas
Lista de Pulos
Ctrl-o
Pular para posição anterior na lista de pulos
Ctrl-i
Pular para próxima posição na lista de pulos
gd
Ir para definição local da palavra sob o cursor
gD
Ir para definição global da palavra sob o cursor
gf
Ir para o arquivo sob o cursor
:jumps
Mostrar lista de pulos

Ctrl-o é seu "botão voltar." Toda vez que você pula para algum lugar — busca, ir para definição, trocar de arquivo — Neovim lembra onde você estava. Pressione Ctrl-o para refazer seus passos. Funciona entre arquivos. Isso sozinho vai te salvar de se perder.

Macros

Macros gravam uma sequência de teclas e as reproduzem. São perfeitas para edições repetitivas que são complexas demais para . mas não valem escrever um script.

Gravando e Executando Macros
q{a-z}
Começar a gravar macro no registrador {a-z}
q
Parar gravação (pressione durante a gravação)
@{a-z}
Executar macro do registrador
@@
Executar novamente a última macro executada
{n}@{a-z}
Executar macro {n} vezes

Ao gravar uma macro, comece com 0 ou ^ para mover para uma posição consistente na linha, e termine com j para mover para baixo. Assim você pode executá-la em múltiplas linhas com algo como 10@q e vai funcionar de forma confiável.

LSP (Language Server Protocol)

Neovim tem suporte LSP embutido desde a versão 0.5. Esses são bindings padrão comuns, mas sua config específica pode remapeá-los. Verifique com :map ou veja sua configuração do lspconfig.

Navegação LSP
gd
Ir para definição
gD
Ir para declaração
gr
Mostrar referências
gi
Ir para implementação
K
Documentação ao passar o cursor
Ctrl-k
Ajuda de assinatura (no modo Insert)
Ações LSP
<leader>rn
Renomear símbolo sob o cursor
<leader>ca
Ação de código (correções rápidas, refatorações)
<leader>f
Formatar buffer
]d
Ir para próximo diagnóstico
[d
Ir para diagnóstico anterior
<leader>e
Mostrar diagnóstico flutuante
<leader>q
Enviar diagnósticos para a lista de localização

Telescope

Telescope é o fuzzy finder no qual a maioria das configurações modernas de Neovim se apoia. Esses são os bindings típicos de <leader> — os seus podem diferir com base na sua config. Se você ainda não usa Telescope, é o plugin que mais vale a pena instalar.

Encontrando Coisas
<leader>ff
Encontrar arquivos por nome
<leader>fg
Busca ao vivo (pesquisar conteúdo de arquivos)
<leader>fb
Navegar buffers abertos
<leader>fh
Pesquisar tags de ajuda
<leader>fo
Arquivos abertos recentemente
<leader>fw
Pesquisar palavra sob o cursor
Dentro do Telescope
Ctrl-nCtrl-p
Mover para cima/baixo nos resultados (ou teclas de seta)
Enter
Abrir resultado selecionado
Ctrl-x
Abrir em split horizontal
Ctrl-v
Abrir em split vertical
Ctrl-t
Abrir em nova aba
Esc
Fechar Telescope

Comandos Essenciais

Operações de Arquivo
:w
Salvar arquivo
:q
Sair (falha se houver alterações não salvas)
:wq
Salvar e sair
:q!
Sair sem salvar
:wa
Salvar todos os buffers abertos
:qa
Sair de tudo
ZZ
Salvar e sair (atalho do modo Normal)
ZQ
Sair sem salvar (atalho do modo Normal)
Comandos Úteis
:set number
Mostrar números de linha
:set relativenumber
Mostrar números de linha relativos
:!{cmd}
Executar comando shell
:r !{cmd}
Inserir saída de comando shell no buffer
:map
Mostrar todos os mapeamentos de teclas
:checkhealth
Diagnosticar sua configuração do Neovim

Dicas e Truques

Números de linha relativos (set relativenumber) são revolucionários para movimentos verticais. Em vez de adivinhar "são 15 linhas abaixo?", você pode ver o número ali e digitar 15j. A maioria das pessoas define tanto number quanto relativenumber para que a linha atual mostre seu número absoluto enquanto todo o resto é relativo.

O modo Visual Block (Ctrl-v) permite editar colunas. Selecione uma coluna vertical, pressione I, digite seu texto e pressione Esc — o texto aparece em todas as linhas selecionadas. Isso é incrivelmente útil para adicionar prefixos, alinhar código ou editar texto estruturado.

Você não precisa memorizar todos os atalhos desta página. Comece com hjkl, w/b, dd, yy, p, i, Esc e :wq. Use esses por uma semana. Depois adicione ciw, f{char} e Ctrl-d/Ctrl-u. Evolua gradualmente — é assim que todo mundo que é bom em Vim realmente aprendeu.

Execute :checkhealth depois de configurar sua config. Ele te diz exatamente o que está funcionando, o que está quebrado e o que está faltando. É o primeiro comando a executar quando algo parece estranho.

O comando gx no modo Normal abre a URL sob o cursor no seu navegador. Muito útil quando você está lendo código com links nos comentários.

Configure o Neovim

Quer entender e personalizar seu init.lua? Experimente o editor interativo de configuração — faça upload da sua config, veja o que cada opção faz e ajuste visualmente.

Related Tools