O **VI** é o editor de texto padrão em praticamente todos os sistemas baseados em Unix, incluindo o Linux. Aprender seus comandos básicos é fundamental para qualquer pessoa que trabalhe em um terminal, especialmente em servidores onde interfaces gráficas não estão disponíveis. O **Vim** (*Vi Improved*) é a versão moderna e aprimorada, mas a base de comandos é a mesma.
## 1. Iniciando o VI e Seus Modos
O VI (e Vim) é famoso por ser um editor **modal**, o que significa que ele opera em diferentes modos, e o que você digita tem funções diferentes dependendo do modo em que está. É crucial entender esses três:
Modo de Comando (Normal Mode)
- É o modo padrão ao abrir o VI.
- Neste modo, as teclas digitadas não inserem texto, mas são interpretadas como **comandos** (mover cursor, deletar linhas, copiar, colar, etc.).
- Para retornar a este modo a partir de qualquer outro: Pressione a tecla
ESC.
Modo de Inserção (Insert Mode)
- Neste modo, o VI se comporta como um editor de texto comum: tudo o que você digita é inserido no arquivo.
- Para entrar a partir do Modo de Comando: Use comandos como:
i: Inserir no local atual do cursor.a: Anexar (inserir) após o cursor.o: Abrir uma nova linha abaixo para inserir.I: Inserir no início da linha.A: Anexar (inserir) no final da linha.
Modo de Última Linha (Command-Line Mode)
- Usado para comandos mais complexos, como salvar, sair, buscar e substituir.
- Para entrar a partir do Modo de Comando: Digite
:(dois pontos). Isso abrirá uma linha de comando na parte inferior da tela.
## 2. Comandos Essenciais para Abrir, Salvar e Sair
Você sempre deve começar no **Modo de Comando** (pressione ESC).
Abrindo um Arquivo
vi nome_do_arquivo.txt
# Ou a versão aprimorada
vim nome_do_arquivo.txt
Salvando e Saindo (No Modo de Última Linha - Comece com ':')
:w: Salva (write) o arquivo, mas não sai.:q: Sai (quit) do VI. Só funciona se nenhuma alteração foi feita.:wq: Salva e Sai. (O mais comum):x: Também salva e sai (similar a:wq).:q!: Sai sem salvar, ignorando quaisquer alterações. Use com cautela!
## 3. Navegação Rápida (Modo de Comando)
Uma vez no Modo de Comando (ESC), você pode navegar sem as setas, o que é mais rápido para quem usa o teclado:
h: Move o cursor para a esquerda (⬅️).j: Move o cursor para baixo (⬇️).k: Move o cursor para cima (⬆️).l: Move o cursor para a direita (➡️).w: Move o cursor para a próxima palavra.b: Move o cursor para o início da palavra anterior.0(zero): Vai para o início da linha.$: Vai para o final da linha.gg: Vai para a primeira linha do arquivo.G: Vai para a última linha do arquivo.5G: Vai para a linha de número 5 (use qualquer número).
## 4. Edição de Texto (Modo de Comando)
Esses comandos no Modo de Comando permitem deletar, copiar e colar texto de forma eficiente:
Deletar e Cortar
x: Deleta o caractere sob o cursor.dw: Deleta da posição do cursor até o final da palavra.dd: Deleta a linha inteira (e a copia para a área de transferência - *yank buffer*).2dd: Deleta as próximas 2 linhas.D: Deleta da posição do cursor até o final da linha.
Copiar e Colar (Yanking and Putting)
yy: Copia a linha inteira (*yank*).yw: Copia uma palavra (*yank* word).p: Cola o texto copiado ou cortado após o cursor/linha.P: Cola o texto copiado ou cortado antes do cursor/linha.
Outros Úteis
u: Desfaz (undo) a última alteração.Ctrl + r: Refaz (redo) a última alteração desfeita.r: Substitui apenas um caractere..(ponto): Repete o último comando de edição.
## 5. Busca e Substituição (Modo de Última Linha)
Use o Modo de Última Linha (:) para operações em todo o arquivo:
Busca
/termo_a_buscar
# Pressione 'n' para ir para a próxima ocorrência
# Pressione 'N' para ir para a ocorrência anterior
Substituição (Global)
Para substituir todas as ocorrências de `antigo` por `novo` em todo o arquivo:
:%s/antigo/novo/g
# Onde:
# %: em todo o arquivo
# s: substituição
# g: global (em todas as ocorrências da linha)
Dica TechEnfim: Para facilitar seu aprendizado, comece abrindo um arquivo temporário (vim teste.txt) e pratique salvar (:w), sair (:q) e alternar entre os modos ESC, i e : até que a troca seja automática!