Folha de atalhos do Neovim

Editor

Folha de atalhos do Neovim

Importante: atalhos marcados como dependentes da configuração não são universais. Execute :map, :nmap, :imap, :vmap e :Telescope keymaps dentro do Neovim para consultar os mapeamentos ativos.

Notação

SímboloDescrição
<C-x>Ctrl + x
<A-x>Alt + x
<S-x>Shift + x
<CR>Enter
<Esc>Escape
<leader>Tecla líder, normalmente Espaço

1. Modos

AtalhoDescrição
iInserir antes do cursor
IInserir no início da linha
aInserir após o cursor
AInserir no final da linha
oCriar linha abaixo
OCriar linha acima
vModo visual por caractere
VModo visual por linha
<C-v>Modo visual em bloco
:Modo de comandos
<Esc>Voltar ao modo Normal

2. Movimentação básica

AtalhoDescrição
hMover para a esquerda
jMover para baixo
kMover para cima
lMover para a direita
wInício da próxima palavra
WInício da próxima PALAVRA
bInício da palavra anterior
BInício da PALAVRA anterior
eFinal da palavra
0Início da linha
^Primeiro caractere não vazio
$Final da linha
ggPrimeira linha do arquivo
GÚltima linha do arquivo
{number}GIr para o número da linha
%Ir para o parêntese/chave correspondente
f{char}Procurar caractere à frente
F{char}Procurar caractere atrás
t{char}Mover até antes do caractere
;Repetir último f, F, t ou T
,Repetir na direção oposta
<C-d>Meia página para baixo
<C-u>Meia página para cima
<C-f>Página para baixo
<C-b>Página para cima
zzCentralizar linha do cursor
ztColocar linha do cursor no topo
zbColocar linha do cursor embaixo

3. Edição

AtalhoDescrição
xApagar caractere
XApagar caractere anterior
ddApagar linha atual
DApagar até o final da linha
dwApagar palavra
d$Apagar até o final da linha
diwApagar dentro da palavra
di"Apagar dentro das aspas
di(Apagar dentro dos parênteses
ciwAlterar palavra atual
ci"Alterar conteúdo entre aspas
ci(Alterar conteúdo entre parênteses
ccAlterar linha atual
CAlterar até o final da linha
yyCopiar linha atual
ywCopiar palavra
y$Copiar até o final da linha
pColar após o cursor
PColar antes do cursor
uDesfazer
<C-r>Refazer
.Repetir última alteração
JJuntar a próxima linha
~Alternar maiúscula/minúscula
gu{motion}Converter para minúsculas
gU{motion}Converter para maiúsculas
>>Aumentar recuo da linha
<<Diminuir recuo da linha
=Indentar automaticamente com movimento
gg=GCorrigir indentação do arquivo inteiro

4. Modo visual

AtalhoDescrição
vSelecionar caracteres
VSelecionar linhas inteiras
<C-v>Selecionar bloco retangular
oIr para a outra ponta da seleção
yCopiar seleção
dApagar seleção
cSubstituir seleção
>Aumentar recuo da seleção
<Diminuir recuo da seleção
=Indentar seleção automaticamente
UConverter seleção para maiúsculas
uConverter seleção para minúsculas
gvSelecionar novamente a última seleção

5. Busca e substituição

AtalhoDescrição
/textBuscar para frente
?textBuscar para trás
nPróximo resultado
NResultado anterior
*Buscar palavra sob o cursor à frente
#Buscar palavra sob o cursor atrás
:%s/old/new/gSubstituir todas as ocorrências
:%s/old/new/gcSubstituir todas com confirmação
:nohLimpar destaque da busca

6. Arquivos, buffers e janelas

Arquivos

Atalho ou comandoDescrição
:wSalvar arquivo
:waSalvar todos os arquivos
:qFechar janela
:q!Fechar sem salvar
:wq or ZZSalvar e fechar
:e pathAbrir arquivo
:e!Recarregar descartando alterações

Buffers

Atalho ou comandoDescrição
:lsListar buffers
:bnext or :bnPróximo buffer
:bprevious or :bpBuffer anterior
:buffer {number}Abrir buffer pelo número
:bdelete or :bdFechar buffer atual
<C-^>Alternar entre os dois últimos buffers

Janelas

Atalho ou comandoDescrição
:split or <C-w>sDivisão horizontal
:vsplit or <C-w>vDivisão vertical
<C-w>hFocar janela à esquerda
<C-w>jFocar janela abaixo
<C-w>kFocar janela acima
<C-w>lFocar janela à direita
<C-w>wAlternar entre janelas
<C-w>qFechar janela atual
<C-w>=Igualar tamanho das janelas
<C-w>_Maximizar altura
<C-w>|Maximizar largura
<C-w>oFechar janelas exceto a atual

7. Marcas, saltos e registradores

AtalhoDescrição
m{letter}Criar marca
'{letter}Ir para a linha marcada
`{letter}Ir para a posição exata marcada
<C-o>Voltar no histórico de saltos
<C-i>Avançar no histórico de saltos
:jumpsMostrar lista de saltos
:marksMostrar marcas
"0pColar a última cópia
"+yCopiar para a área de transferência
"+pColar da área de transferência
"_dApagar sem copiar

8. Macros

AtalhoDescrição
q{letter}Iniciar gravação da macro
qParar gravação
@{letter}Executar macro
@@Repetir última macro
{number}@{letter}Executar macro várias vezes

9. Comments — comment.lua

O mapeamento exato depende de qual plugin de comentários o arquivo comment.lua carrega.

Mapeamentos comuns usados pelo Comment.nvim:

AtalhoDescrição
gccComentar/descomentar linha atual
gc{motion}Comentar/descomentar usando movimento
gbcAlternar comentário em bloco
gb{motion}Comentário em bloco usando movimento
gc in Visual modeComentar/descomentar seleção
gb in Visual modeAlternar comentário em bloco da seleção

Exemplos:

ComandoDescrição
gcipComentar parágrafo atual
gc3jComentar linha atual e as próximas 3

10. Telescope — telescope.lua

Os atalhos globais que abrem o Telescope dependem da configuração. Mapeamentos personalizados comuns:

Mapeamento comumDescrição
<leader>ffProcurar arquivos
<leader>fgBuscar texto no projeto
<leader>fbProcurar buffers abertos
<leader>fhBuscar na ajuda
<leader>frArquivos recentes
<leader>fkBuscar atalhos
<leader>fdBuscar diagnósticos
<leader>fsBuscar símbolos do documento

Dentro do Telescope:

AtalhoDescrição
<C-n> or <Down>Próximo resultado
<C-p> or <Up>Resultado anterior
<CR>Abrir resultado selecionado
<C-x>Abrir em divisão horizontal
<C-v>Abrir em divisão vertical
<C-t>Abrir em nova aba
<C-u>Rolar pré-visualização para cima
<C-d>Rolar pré-visualização para baixo
<Tab>Marcar item e ir ao próximo
<S-Tab>Marcar item e ir ao anterior
<C-q>Enviar resultados ao quickfix
<Esc> or <C-c>Fechar Telescope

Comandos úteis:

vim
:Telescope find_files
:Telescope live_grep
:Telescope buffers
:Telescope help_tags
:Telescope oldfiles
:Telescope keymaps
:Telescope diagnostics

11. Neo-tree — neo-tree.lua

O atalho usado para abrir o Neo-tree depende da configuração. Um mapeamento comum é:

Mapeamento comumDescrição
<leader>eAbrir/fechar explorador de arquivos

Comandos úteis:

vim
:Neotree toggle
:Neotree reveal
:Neotree focus
:Neotree filesystem
:Neotree buffers
:Neotree git_status

Dentro do Neo-tree:

AtalhoDescrição
<CR>Abrir arquivo ou expandir diretório
SAbrir em divisão horizontal
sAbrir em divisão vertical
tAbrir em nova aba
aCriar arquivo ou diretório
dApagar item
rRenomear item
yCopiar item
xRecortar item
pColar item
cCopiar item
mMover item
qFechar Neo-tree
RAtualizar árvore
HMostrar/ocultar arquivos escondidos
/Filtrar arquivos
?Mostrar ajuda do Neo-tree

12. Bufferline — bufferline.lua

O Bufferline não cria necessariamente atalhos globais. Estes são mapeamentos personalizados comuns:

Mapeamento comumDescrição
<S-h>Buffer anterior
<S-l>Próximo buffer
[bBuffer anterior
]bPróximo buffer
<leader>bdFechar buffer atual
<leader>bpFixar/desafixar buffer

Comandos úteis:

vim
:BufferLineCycleNext
:BufferLineCyclePrev
:BufferLineMoveNext
:BufferLineMovePrev
:BufferLinePick
:BufferLinePickClose
:BufferLineCloseOthers
:BufferLineCloseLeft
:BufferLineCloseRight
:BufferLineTogglePin

13. LSP — lsp.lua

Os mapeamentos do LSP normalmente são definidos no arquivo lsp.lua, muitas vezes durante LspAttach.

Atalhos comuns:

Mapeamento comumDescrição
gdIr para a definição
gDIr para a declaração
grLocalizar referências
giIr para a implementação
gtIr para a definição do tipo
KMostrar documentação
<C-k> in Insert modeMostrar ajuda da assinatura
<leader>rnRenomear símbolo
<leader>caAção de código
<leader>fFormatar documento
[dDiagnóstico anterior
]dPróximo diagnóstico
<leader>dMostrar mensagem do diagnóstico
<leader>qLista de diagnósticos no quickfix

Comandos LSP nativos:

vim
:lua vim.lsp.buf.definition()
:lua vim.lsp.buf.references()
:lua vim.lsp.buf.rename()
:lua vim.lsp.buf.code_action()
:lua vim.diagnostic.open_float()

14. Completion — cmp.lua

Dentro do menu de autocompletar, os mapeamentos dependem da configuração. Mapeamentos comuns do nvim-cmp:

Mapeamento comumDescrição
<C-n>Selecionar próxima sugestão
<C-p>Selecionar sugestão anterior
<C-d>Rolar documentação para cima
<C-f>Rolar documentação para baixo
<C-Space>Abrir menu de sugestões
<C-e>Fechar menu de sugestões
<CR>Confirmar sugestão
<Tab>Próxima sugestão ou expandir snippet
<S-Tab>Sugestão anterior

15. Formatting — conform.lua

Os atalhos de formatação dependem completamente da configuração.

Atalho comum:

Mapeamento comumDescrição
<leader>fFormatar arquivo ou seleção

Comando Lua típico:

lua
require("conform").format({ async = true, lsp_format = "fallback" })

Inspeção útil:

vim
:ConformInfo

16. Git signs — gitsigns.lua

Common Gitsigns mappings:

Mapeamento comumDescrição
]cPróximo bloco alterado
[cBloco alterado anterior
<leader>hsAdicionar bloco ao stage
<leader>hrDesfazer alterações do bloco
<leader>hSAdicionar arquivo inteiro ao stage
<leader>hRDesfazer alterações do arquivo
<leader>huRetirar último bloco do stage
<leader>hpPré-visualizar bloco alterado
<leader>hbMostrar autor da linha
<leader>hdComparar com o índice
ihSelecionar bloco Git

17. Autopairs — autopairs.lua

O nvim-autopairs normalmente funciona de forma automática.

AçãoDescrição
Type (, [, {, ", 'Inserir automaticamente o par de fechamento
<BS>Apagar um par vazio
<CR>Criar linha indentada dentro do par, se configurado

18. Treesitter — treesitter.lua

O Treesitter melhora principalmente a análise sintática e o destaque de código. Ele pode não adicionar atalhos, a menos que a seleção incremental esteja configurada.

Mapeamentos comuns de seleção incremental:

Mapeamento comumDescrição
<C-Space>Iniciar ou expandir seleção sintática
<BS>Diminuir seleção sintática

Comandos úteis:

vim
:Inspect
:InspectTree
:TSInstallInfo
:TSUpdate

19. Indentation — indent.lua

Plugins de guias de indentação normalmente adicionam apenas indicadores visuais e podem não possuir atalhos.

Native indentation shortcuts:

AtalhoDescrição
>>Aumentar recuo da linha
<<Diminuir recuo da linha
> in Visual modeAumentar recuo da seleção
< in Visual modeDiminuir recuo da seleção
=Reindentar usando movimento
gg=GReindentar arquivo inteiro

20. Plugins de interface

Estes plugins normalmente não adicionam atalhos importantes de edição:

  • alpha.lua — painel inicial
  • lualine.lua — barra de status
  • tokyo-night.lua — tema de cores
  • indent.lua — guias de indentação

Os atalhos do painel Alpha dependem totalmente da configuração em alpha.lua.


21. Descobrir seus atalhos exatos

Execute estes comandos dentro do Neovim:

vim
:map
:nmap
:imap
:vmap
:xmap
:map <leader>
:verbose nmap <leader>e
:verbose nmap gd
:Telescope keymaps

Significado:

ComandoDescrição
:mapMostrar atalhos de vários modos
:nmapMostrar atalhos do modo Normal
:imapMostrar atalhos do modo Inserção
:vmapMostrar atalhos do modo Visual
:verbose nmap ...Mostrar o atalho e onde foi definido
:Telescope keymapsPesquisar atalhos ativos interativamente

Para verificar a tecla líder:

vim
:lua print(vim.g.mapleader)
:lua print(vim.g.maplocalleader)

22. Atalhos essenciais para o dia a dia

AtalhoDescrição
iInserir texto
<Esc>Modo Normal
:wSalvar
:qFechar
uDesfazer
<C-r>Refazer
yyCopiar linha
ddApagar linha
pColar
ciwSubstituir palavra
/textBuscar
n / NPróximo/anterior
gg / GInício/fim do arquivo
<C-o> / <C-i>Voltar/avançar no histórico
.Repetir última edição
gccComentar/descomentar linha
gdIr para definição
KMostrar documentação
]d / [dPróximo/anterior diagnóstico
<leader>ffProcurar arquivos, quando configurado
<leader>fgBuscar texto no projeto, quando configurado
<leader>eAbrir/fechar Neo-tree, quando configurado

Nota de precisão

Os atalhos nativos do Neovim são estáveis, mas mapeamentos de plugins como <leader>ff, <leader>e, gd, formatação e navegação entre buffers costumam ser personalizados nos arquivos Lua. Use :verbose map ou :Telescope keymaps para confirmar a configuração ativa.