Guia rápido de movimentação eficiente pelo texto no Vim. Dominar esses comandos é essencial para produtividade antes de aprender operações de edição avançadas.
- Vim 8.0+ ou Neovim instalado
- Entender a diferença entre modos Normal e Inserção (sair do modo Inserção:
Esc ou Ctrl+[)
- Para comandos de busca: conhecimento básico de expressões regulares (opcional)
- Cheat Sheet relacionado: Comandos de Deleção no Vim
| Comando |
Descrição |
Analogia |
h |
Esquerda |
← seta |
j |
Baixo |
↓ seta (lembre: "J" desce) |
k |
Cima |
↑ seta |
l |
Direita |
→ seta (lembre: "L" de "lado") |
Dica: Evite usar as setas do teclado no Vim. Mantenha os dedos na linha base (home row) para eficiência máxima.
| Comando |
O que faz |
Diferença importante |
w |
Início da próxima palavra |
Para em pontuação |
W |
Início da próxima WORD (grande) |
Ignora pontuação, só para em espaço |
b |
Início da palavra anterior |
Backwards word |
B |
Início da WORD anterior |
Backwards WORD |
e |
Fim da palavra atual/próxima |
End of word |
E |
Fim da WORD atual/próxima |
End of WORD |
ge |
Fim da palavra anterior |
Backwards end |
gE |
Fim da WORD anterior |
Backwards end WORD |
Definição técnica:
- palavra (word): sequência de letras, números ou sublinhado
[a-zA-Z0-9_], OU sequência de outros caracteres não-brancos.
- WORD (grande): sequência de caracteres não-brancos separados por espaços.
Exemplo prático:
# Texto: config-file.txt
# w: para em "config", "-", "file", ".", "txt"
# W: pula direto para o final "config-file.txt"
| Comando |
Destino |
Uso típico |
0 |
Início da linha (coluna 0) |
Ir para começo absoluto |
^ |
Primeiro caractere não-branco |
Ignora indentação (ideal para código) |
$ |
Final da linha (último caractere) |
Ir para terminação |
g_ |
Último caractere não-branco |
Ignora espaços finais |
+ ou Enter |
Início da próxima linha |
Navegação vertical rápida |
- |
Início da linha anterior |
Linha acima |
| Comando |
Movimento |
Contexto |
{ |
Parágrafo anterior |
Separado por linha em branco |
} |
Próximo parágrafo |
Blocos lógicos de texto |
( |
Frase anterior |
Terminada por ., !, ? |
) |
Próxima frase |
Sentenças completas |
[[ |
Seção anterior |
Início de função/bloco { no início da linha |
]] |
Próxima seção |
Fim de função/bloco } |
gg |
Primeira linha do arquivo |
Topo absoluto |
G |
Última linha do arquivo |
Final absoluto |
nG ou :n |
Linha número n |
Ir para linha específica |
% |
Parêntese/colchete/chave correspondente |
Balanceamento de estruturas |
Exemplo: Posicione o cursor sobre um { e pressione % para saltar para o } correspondente.
| Comando |
Ação |
Observação |
H |
High - cursor para linha do topo da tela |
Mantém coluna atual |
M |
Middle - cursor para linha do meio |
Centraliza visualmente |
L |
Low - cursor para linha do final da tela |
Última linha visível |
Ctrl+f |
Página abaixo (foward) |
Similar a Page Down |
Ctrl+b |
Página acima (backwards) |
Similar a Page Up |
Ctrl+d |
Meia página abaixo (down) |
Mais granular |
Ctrl+u |
Meia página acima (up) |
Mais granular |
Ctrl+e |
Rola tela uma linha para cima |
Cursor fica fixo |
Ctrl+y |
Rola tela uma linha para baixo |
Cursor fica fixo |
zt |
Zip Top - posiciona linha atual no topo da tela |
Contexto atual visível acima |
zz |
Zip Zero - posiciona linha atual no meio |
Centraliza contexto |
zb |
Zip Bottom - posiciona linha atual no final |
Contexto visível abaixo |
| Comando |
Ação |
Memória |
Ctrl+o |
Volta para posição anterior mais antiga |
Jump list (histórico de saltos) |
Ctrl+i |
Avança para posição mais recente |
Contrário do Ctrl+o |
`` (dois acentos graves) |
Alterna entre última posição e atual |
Alternância rápida |
'' (duas aspas simples) |
Mesmo que `` mas para início da linha |
Linha anterior |
`[ |
Ir para início da última alteração/yank |
Início do texto modificado |
`] |
Ir para fim da última alteração/yank |
Fim do texto modificado |
Atenção: Ctrl+i pode conflitar com Tab em alguns terminais. Se não funcionar, verifique mapeamentos com :map <C-i>.
Crie "âncoras" para navegação instantânea entre pontos do arquivo.
| Comando |
Ação |
Tipo |
m{a-z} |
Cria mark local (minúscula) |
Apenas no arquivo atual |
m{A-Z} |
Cria mark global (maiúscula) |
Entre arquivos diferentes |
`a | Salta para mark a (posição exata) |
Preciso (linha + coluna) |
|
'a |
Salta para mark a (início da linha) |
Aproximado (só linha) |
:marks |
Lista todas as marcas definidas |
Visualização completa |
`0 |
Última posição ao sair do Vim |
Recupera onde estava |
'0 |
Mesmo que acima, mas linha |
Entrada ao arquivo |
Workflow típico:
- No início da função:
ma (marca como 'a')
- Edita outra parte do arquivo
- Volta rapidamente:
`a ou 'a
| Comando |
Função |
Direção |
/padrão |
Busca padrão para frente |
↓ baixo |
?padrão |
Busca padrão para trás |
↑ cima |
n |
Repete busca na mesma direção |
Próxima ocorrência |
N |
Repete busca na direção oposta |
Ocorrência anterior |
* |
Busca palavra sob cursor (exato) |
Para frente |
# |
Busca palavra sob cursor (exato) |
Para trás |
g* |
Busca palavra parcial (contém) |
Para frente (parcial) |
g# |
Busca palavra parcial (contém) |
Para trás (parcial) |
/\<word\> |
Busca palavra exata com delimitadores |
Regex word boundaries |
Dica: Após buscar com * ou #, use n/N para navegar entre ocorrências rapidamente.
| Comando |
Contexto |
Ação |
gf |
Cursor sobre path de arquivo |
Goto File - abre arquivo sob cursor |
gF |
Cursor sobre path:linha |
Abre arquivo na linha específica |
Ctrl+] |
Cursor sobre tag/keyword |
Segue tag (requer tags file/ctags) |
Ctrl+t |
Após Ctrl+] |
Volta da pilha de tags (pop) |
gx |
Cursor sobre URL |
Abre URL no navegador padrão |
# Use ]] para pular para próxima função (def no início da linha)
# Use [[ para função anterior
# Use % para saltar entre def/end ou {/} dependendo da sintaxe
/ERROR<Enter> # Busca primeiro erro
n # Próximo erro
n # Próximo erro...
# Para voltar ao erro anterior:
N # Erro anterior
# Na seção de configuração (topo):
ma # Marca como 'a'
# Vai para seção de implementação (final):
mb # Marca como 'b'
# Alterna entre elas:
`a # Vai para configuração
`b # Vai para implementação
| Problema |
Causa |
Solução |
j/k pula linhas longas (wrapped) |
Line wrapping |
Use gj/gk para navegar visualmente na linha quebrada |
w para em pontuação indesejada |
Comportamento padrão |
Use W para ignorar pontuação, ou e para ir direto ao fim da palavra |
gg não vai para linha 1 |
Em modo Visual |
Saia do modo Visual primeiro (Esc) |
Ctrl+o não volta para arquivo anterior |
Jump list limpa |
O Vim limpa jump list em algumas operações. Use marks globais mA para navegação entre arquivos persistente |
% não encontra par correspondente |
Fora de sintaxe reconhecida |
Instale plugin de syntax highlighting ou verifique filetype (:set ft?) |
| Data |
Versão |
Autor |
Descrição |
| 2026-04-15 |
1.0.0 |
@gean |
Criação do cheat sheet de navegação |
Tags: #vim #editor #referencia-rapida #navegacao #basico