Cheatsheet do Vim - Edição de Texto Eficiente

Intermediário | 15 min leitura | 2025.12.12

Documentação Oficial

O que é Vim

Vim é um editor de texto avançado amplamente utilizado em sistemas operacionais Unix. Possui o conceito de “modos”, permitindo edição eficiente de texto usando apenas o teclado. É amplamente utilizado em administração de servidores e programação.

Troca de Modos

O Vim possui vários modos, cada um com funções diferentes.

TeclaModoDescrição
iModo de InserçãoInsere caracteres antes da posição do cursor
aModo de InserçãoInsere caracteres após a posição do cursor
IModo de InserçãoMove para o início da linha e começa a inserção
AModo de InserçãoMove para o fim da linha e começa a inserção
oModo de InserçãoInsere uma nova linha abaixo e começa a inserção
OModo de InserçãoInsere uma nova linha acima e começa a inserção
EscModo NormalRetorna ao modo normal de outros modos
vModo VisualSeleciona por caractere
VModo VisualSeleciona por linha
Ctrl+vModo VisualSeleção retangular (seleção em bloco)
:Modo de ComandoInsere comandos ex
" Como verificar o modo
" -- INSERT -- ou -- VISUAL -- é exibido no canto inferior esquerdo
" No modo normal, nada é exibido

Movimentação do Cursor

A movimentação eficiente afeta significativamente a produtividade no Vim.

Movimentação Básica

TeclaDescrição
hMove 1 caractere para a esquerda
jMove 1 linha para baixo
kMove 1 linha para cima
lMove 1 caractere para a direita

Movimentação por Palavra

TeclaDescrição
wPara o início da próxima palavra (word)
WPara a próxima palavra separada por espaço
bPara o início da palavra anterior (back)
BPara a palavra anterior separada por espaço
ePara o fim da palavra (end)
EPara o fim da palavra separada por espaço

Movimentação na Linha

TeclaDescrição
0Para o início da linha (coluna 0)
^Para o primeiro caractere não-espaço da linha
$Para o fim da linha
f{char}Pula para o próximo {char} na linha
F{char}Pula para o {char} anterior na linha
t{char}Para logo antes do próximo {char}
;Repete a busca f/F/t

Movimentação no Arquivo

TeclaDescrição
ggPara o início do arquivo
GPara o fim do arquivo
{n}GPula para a linha n
:{n}Pula para a linha n
Ctrl+fRola uma página para baixo
Ctrl+bRola uma página para cima
Ctrl+dRola meia página para baixo
Ctrl+uRola meia página para cima
%Pula para o parêntese correspondente
" Exemplo: Pular para a linha 100
100G
" ou
:100

Operações de Edição

Exclusão

TeclaDescrição
xExclui 1 caractere na posição do cursor
XExclui 1 caractere antes do cursor
ddExclui 1 linha (recorta)
DExclui do cursor até o fim da linha
dwExclui uma palavra
diwExclui a palavra inteira (inner word)
di"Exclui conteúdo dentro das aspas duplas
di(Exclui conteúdo dentro dos parênteses
d$Exclui do cursor até o fim da linha

Copiar e Colar

TeclaDescrição
yyCopia 1 linha (yank)
ywCopia uma palavra
y$Copia do cursor até o fim da linha
pCola após o cursor
PCola antes do cursor
"0pCola o último texto copiado (yanked)
"+yCopia para a área de transferência do sistema
"+pCola da área de transferência do sistema

Alteração (exclui e entra no modo de inserção)

TeclaDescrição
cwAltera uma palavra
ciwAltera a palavra inteira
ci"Altera conteúdo dentro das aspas duplas
ccAltera a linha inteira
CAltera do cursor até o fim da linha
sExclui 1 caractere e entra no modo de inserção
SExclui a linha e entra no modo de inserção

Desfazer e Refazer

TeclaDescrição
uDesfazer (Undo)
Ctrl+rRefazer (Redo)
.Repete a última operação
" Exemplo: Desfazer 3 vezes
3u

" Exemplo: Repetir a última operação 5 vezes
5.

Busca e Substituição

Busca

TeclaDescrição
/{pattern}Busca para frente
?{pattern}Busca para trás
nPróximo resultado da busca
NResultado anterior da busca
*Busca para frente a palavra sob o cursor
#Busca para trás a palavra sob o cursor
" Exemplo: Buscar 'function'
/function

" Exemplo: Buscar ignorando maiúsculas/minúsculas
/pattern\c

" Exemplo: Buscar com expressão regular (limite de palavra)
/\<word\>

Substituição

" Substitui a primeira ocorrência na linha atual
:s/old/new/

" Substitui todas as ocorrências na linha atual
:s/old/new/g

" Substitui em todo o arquivo
:%s/old/new/g

" Substitui com confirmação
:%s/old/new/gc

" Substitui ignorando maiúsculas/minúsculas
:%s/old/new/gi

" Substitui em um intervalo específico (linha 10 a 20)
:10,20s/old/new/g

" Substitui na seleção (após selecionar no modo visual)
:'<,'>s/old/new/g

Operações de Arquivo

ComandoDescrição
:wSalvar
:w {filename}Salvar como
:qSair
:q!Forçar saída sem salvar
:wqSalvar e sair
ZZSalvar e sair (igual a :wq)
ZQSair sem salvar (igual a :q!)
:e {filename}Abrir arquivo
:r {filename}Inserir conteúdo de arquivo
:!{command}Executar comando externo
" Exemplo: Fazer backup do arquivo atual
:w %.bak

" Exemplo: Inserir resultado de comando shell
:r !date

Operações de Janela

ComandoDescrição
:splitDivisão horizontal
:vsplitDivisão vertical
Ctrl+w hPara a janela à esquerda
Ctrl+w jPara a janela abaixo
Ctrl+w kPara a janela acima
Ctrl+w lPara a janela à direita
Ctrl+w =Igualar tamanho das janelas
Ctrl+w qFechar janela

Macros

Permite automatizar tarefas repetitivas.

" Iniciar gravação de macro (tecla q + nome do registrador)
qa

" Executar uma série de operações...

" Finalizar gravação
q

" Reproduzir macro (tecla @ + nome do registrador)
@a

" Executar macro 5 vezes
5@a

" Re-executar última macro
@@

Configurações Úteis (.vimrc)

" Exibir números de linha
set number

" Exibir números de linha relativos
set relativenumber

" Destaque de sintaxe
syntax on

" Configuração de indentação
set tabstop=4
set shiftwidth=4
set expandtab

" Configuração de busca
set hlsearch      " Destacar resultados da busca
set incsearch     " Busca incremental
set ignorecase    " Ignorar maiúsculas/minúsculas
set smartcase     " Diferenciar se contiver maiúsculas

" Integração com área de transferência
set clipboard=unnamedplus

Plugins Populares

PluginDescrição
vim-plugGerenciador de plugins
NERDTreeExplorador de arquivos
fzf.vimBuscador fuzzy
vim-fugitiveIntegração com Git
coc.nvimLSP/Autocompletar
← Voltar para a lista