Comandos vi do Linux: os 3 modos do Vim e o modo visual

Aviso de afiliados v3.1
Aviso de afiliados v3.2 (somente celular)
Ambiente de testeFamília RHELAlmaLinux 9.8conta rootVerificado em 07/10/2026

Abrir o vi e ver que nada do que você digita aparece, ou fechar a janela por não saber como sair: quase todo mundo que mexe num servidor pela primeira vez passa por isso uma vez. O comando vi do Linux tem modos normal e de inserção separados, então, sabendo em qual modo você está, o resto são poucas teclas. Este post organiza em tabelas os três modos e os comandos de cada um, e você pode digitar vi num servidor virtual no seu navegador.

No AlmaLinux 9.8, vi e vim vêm os dois do pacote vim 8.2, e as telas e mensagens deste post foram abertas com o vim. Se não estiver instalado, instale com [dnf -y install vim-enhanced].

Diagrama da troca entre os três modos do vi Linux vi command: three modes diagram

✅ Os três modos do vi

No vi, a mesma tecla faz coisas diferentes conforme o modo. O arquivo abre no modo normal; i leva ao modo de inserção para digitar, Esc traz de volta, e dois-pontos [:] levam ao modo de linha de comando para salvar e sair.

ModoTecla para entrarTarefa
Modo normalOnde o vi começa · Esc a partir de qualquer outro modoMover o cursor, apagar, copiar, colar, desfazer
Modo de inserçãoi a I A o ODigitar texto. [-- INSERT --] na parte de baixo da tela
Modo de linha de comando:Salvar, sair, substituir, números de linha. Aparece um : na parte de baixo da tela
Modo visualv V Ctrl-vSelecionar um trecho e então apagar, copiar ou inserir em todas as linhas

Há três formas de abrir um arquivo pelo console.

ComandoDescrição
vi arquivoAbre o arquivo no modo normal. Se o arquivo não existir, ele é criado e aparece [New]
vi +20 arquivoAbre com o cursor na linha 20
view arquivo= vi -RAbre só para leitura. Editar mostra o aviso [W10], salvar dá [E45]

Digite [vi httpd.conf] no servidor virtual abaixo para abrir o vi, e o menu à esquerda passa a mostrar os comandos de dentro do vi. Clicar num chip manda aquela tecla para a tela, ou você pode digitá-la no teclado.

Simulador de comandos vivim 8.2
[root@server work]#
Roda só no seu navegador e não mexe em arquivos reais. Primeiro abra um arquivo com vi httpd.conf, e o menu à esquerda passa para os comandos de dentro do vi. Clicar num chip digita aquela tecla na tela, ou você pode digitar no teclado. Depois de salvar e sair com :wq, confira o resultado com cat; se algo embolar, clique em [Start over]. Teste você mesmo as outras teclas das tabelas.

✅ Resumo dos comandos vi do Linux

🔲 Mover o cursor

TeclaDescrição
h j k l← ↓ ↑ →Move um caractere. As setas também funcionam
0 · ^Início da linha (0) · primeiro caractere que não é espaço (^)
$Fim da linha
w · b · eInício da próxima palavra · início da palavra anterior · fim da próxima palavra
gg · GPrimeira linha · última linha do arquivo
20Go mesmo que :20Vai para a linha 20. Troque o número para qualquer linha
H · M · LLinha de cima · do meio · de baixo da tela
Ctrl-f · Ctrl-bUma tela para baixo · para cima
Ctrl-d · Ctrl-uMeia tela para baixo · para cima

🔲 Entrar no modo de inserção

Seja qual for a tecla usada para entrar, pressione Esc ao terminar de digitar. cw, cc, C e s apagam e já colocam você no modo de inserção, então corrigir uma palavra ou linha é mais rápido do que apertar x e i separadamente.

TeclaDescrição
i · aComeçar a digitar antes (i) · depois (a) do cursor
I · AComeçar a digitar no início (I) · fim (A) da linha
o · OAbrir uma linha vazia abaixo (o) · acima (O) e digitar
cwApagar do cursor até o fim da palavra e digitar
ccApagar a linha inteira e digitar
CApagar do cursor até o fim da linha e digitar
sApagar um caractere e digitar
EscParar de digitar e voltar ao modo normal

🔲 Apagar e editar

Coloque uma tecla de movimento depois do d e aquele trecho é apagado. dw apaga uma palavra, dd uma linha, dG tudo até o fim do arquivo, e um número na frente repete isso várias vezes.

TeclaDescrição
x · XApagar o caractere sob (x) · antes (X) do cursor. 3x apaga três
dwApagar do cursor até o fim da palavra
ddApagar a linha. 3dd apaga três linhas
D= d$Apagar do cursor até o fim da linha
d0Apagar do início da linha até o cursor
dGApagar da linha atual até o fim do arquivo
:6d · :6,10dApagar a linha 6 · apagar as linhas 6–10
JJuntar a linha de baixo ao fim da linha atual
rTrocar o caractere sob o cursor pela próxima tecla digitada
~Alternar maiúscula/minúscula
>> · <<Indentar · desindentar a linha

🔲 Copiar, colar e desfazer

O texto apagado pode ser colado com p como o copiado, então dd seguido de p move uma linha para baixo. u volta várias alterações, e Ctrl-r refaz o que foi desfeito.

TeclaDescrição
yyCopiar a linha. 3yy copia três linhas
ywCopiar do cursor até o fim da palavra
p · PColar abaixo (p) · acima (P). Numa cópia por caractere, depois · antes do cursor
:1 co 7o mesmo que :1 t 7Copiar a linha 1 para baixo da linha 7
:1,7 co 8Copiar as linhas 1–7 para baixo da linha 8
:1 m 8Mover a linha 1 para baixo da linha 8
uDesfazer. Pressione de novo para continuar voltando
Ctrl-rRefazer o que foi desfeito
.Repetir a última alteração

🔲 Buscar e substituir

A substituição é feita no modo de linha de comando. Sem intervalo, vale só para a linha atual; [%] cobre o arquivo inteiro; e sem g no fim só a primeira ocorrência de cada linha muda.

TeclaDescrição
/textoBusca para baixo a partir do cursor. No fim, recomeça do topo: [search hit BOTTOM, continuing at TOP]
?textoBusca para cima a partir do cursor
n · NPróxima ocorrência na mesma direção (n) · na direção oposta (N)
*Buscar para baixo a palavra sob o cursor
:s/old/new/Primeiro old da linha atual para new
:s/old/new/gTodos os old da linha atual para new
:%s/old/new/gTodos os old do arquivo inteiro para new
:10,20s/old/new/gTodos os old das linhas 10–20 para new
:%s/old/new/gcPerguntar antes de cada troca (y troca · n pula · a todas · q para)

🔲 Salvar, sair e números de linha

TeclaDescrição
:wSalvar. Ao terminar: [36L, 1094B written]
:w arquivoSalvar com outro nome. O arquivo original fica como está
:wq= :⁠x = ZZSalvar e sair
:qSair. Se houver alterações não salvas: [E37: No write since last change]
:q!Sair sem salvar
:set nu · :set nonuMostrar · ocultar números de linha

✅ Comentar uma coluna com o modo visual de bloco do Vim

Para pôr o mesmo texto no início de várias linhas, use o modo visual de bloco em vez de apertar i em cada linha. No modo normal, v seleciona por caractere, Shift-v por linha e Ctrl-v por coluna.

Diagrama dos três modos visuais do vim vim visual mode: three kinds diagram

Veja como comentar um bloco inteiro de um arquivo de configuração. Ponha o cursor no primeiro caractere da primeira linha, pressione Ctrl-v, desça com j para selecionar as linhas, então pressione I, digite # e pressione Esc.

Iniciar o modo visual de bloco do vim
1. Pressione Ctrl-v no primeiro caractere da primeira linha e aparece [-- VISUAL BLOCK --].
Selecionar linhas com o cursor no modo visual de bloco do vim
2. Desça com j para selecionar todas as linhas a comentar.
Digitar na inserção em bloco do vim
3. Pressione I e digite #; ele aparece só na primeira linha.
Edição de coluna concluída no modo visual de bloco do vim
4. Pressione Esc e o # é adicionado a todas as linhas selecionadas.

Tirar os comentários funciona igual. Ponha o cursor no # da primeira linha, selecione para baixo com Ctrl-v, pressione x e a coluna selecionada some de uma vez. Dá para testar assim no vhost.conf do simulador acima.

  • Comandos vi e vim
  • Comandos de processamento de texto
  • Estrutura do editor vi: modos normal, de inserção e de linha de comando

ℹ️ Aviso de afiliados
O conteúdo deste site contém links de afiliados. Quando um visitante compra um produto ou serviço por meio de um desses links, o site recebe uma comissão do vendedor. O valor que o comprador paga (em promoções, ele diminui ↓) não aumenta por causa disso. Preços, descontos e informações de estoque valem para o momento em que o texto foi escrito e podem ter mudado, por isso confirme com o vendedor antes de comprar. Os produtos são escolhidos e avaliados por critérios próprios, e o recebimento de comissão não influencia a ordem de apresentação nem o conteúdo das avaliações.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Demonstre sua humanidade: 5   +   3   =