Linux: Editores de Texto — Fundamentos do nano e do vim
Em um servidor Linux, não há interface gráfica do VS Code. Só podemos contar com editores de texto no terminal para modificar arquivos de configuração e escrever código. Os dois mais comuns são nano (curva de aprendizado zero) e vim (rei da eficiência).
📋 Pré-requisitos: Você deve primeiro concluir
- Aula 3: Fundamentos do Terminal
1. O Que Você Vai Aprender
- Uso básico do nano
- Os três modos do vim
- Movimentação do cursor e edição no vim
- Busca e substituição no vim
- Como escolher o editor ideal para você
2. A História de Editar Arquivos no Terminal
(1) O Problema: Não Dá Para Usar o VS Code Após Login SSH
Alex acessou um servidor via SSH e queria editar o arquivo de configuração do Nginx, mas o servidor não tinha VS Code nem interface gráfica. Ele já tinha ouvido falar de vim, mas não sabia usá-lo — depois de abrir, nem conseguia descobrir como sair.
O engenheiro sênior Bob ensinou-lhe as sequências essenciais de teclas: i para entrar no modo de inserção e começar a escrever, Esc para voltar ao modo normal, :wq para salvar e sair.
(2) O Método dos Três Passos
Bob disse: "Lembre desses três passos e você consegue editar qualquer arquivo com vim."
i para entrar no modo de inserção e começar a editar, Esc para voltar ao modo normal, :wq para salvar e sair. Com apenas esses três passos, você dá conta da maior parte das tarefas de edição no vim; o restante você vai aprendendo aos poucos.
vim /etc/nginx/nginx.conf
# 1. Aperte i para entrar no modo de inserção — comece a editar
# 2. Após editar, aperte Esc para voltar ao modo normal
# 3. Digite :wq e aperte Enter — salvar e sair
(3) O Benefício: Sem Mais Medo de Editar Arquivos de Configuração
Depois de aprender o básico do vim, Alex percebeu que editar configurações do servidor era, na verdade, rápido — abrir o arquivo, encontrar a linha a alterar, apertar i para modificar, :wq para salvar. O processo todo leva menos de 30 segundos.
3. Pontos-Chave
(1) nano — O Editor de Barreira Zero
O nano é um editor simples pré-instalado em todos os sistemas Linux. Suas dicas de operação ficam exibidas na parte inferior da tela.
ℹ️ Nota: Se você só edita um arquivo de configuração ocasionalmente, o nano é perfeitamente adequado, com custo de aprendizado zero; se você precisa editar texto extensivamente todo dia, o vim é muito mais eficiente. Comece com o nano e migre para o vim quando sentir que o nano não é rápido o suficiente.
Abrir um arquivo:
nano arquivo
nano /etc/nginx/nginx.conf # Quando precisar de sudo: sudo nano /etc/nginx/nginx.conf
Atalhos comuns (^ significa a tecla Ctrl):
| Atalho | Ação |
|---|---|
Ctrl + O |
Salvar o arquivo |
Ctrl + X |
Sair do nano |
Ctrl + W |
Buscar texto |
Ctrl + K |
Cortar a linha atual |
Ctrl + U |
Colar |
Ctrl + G |
Mostrar ajuda |
Alt + U |
Desfazer |
Alt + E |
Refazer |
(2) Os Três Modos do vim
A maior característica do vim é ser dirigido por modos — a mesma tecla tem funções diferentes em modos diferentes.
┌─────────────────────────────┐
│ Modo Normal │ ← Modo padrão ao iniciar, para movimentação e operações
│ Aperte i / a / o → Modo de Inserção │
│ Aperte v / V → Modo Visual │
│ Aperte : → Modo de Linha de Comando │
└──────────────┬──────────────┘
│
┌─────────┴─────────┐
↓ ↓
┌──────────────┐ ┌──────────────┐
│Modo de Inserção│ │ Modo Visual │
│ │ │ │
│ Aperte Esc → │ │ Aperte Esc → │
│Volta ao Normal│ │Volta ao Normal│
└──────────────┘ └──────────────┘
(3) Movimentação do Cursor no vim (Modo Normal)
h ← Move uma posição para a esquerda
j ↓ Move uma linha para baixo
k ↑ Move uma linha para cima
l → Move uma posição para a direita
w Pula para o início da próxima palavra
b Pula para o início da palavra anterior
0 Pula para o início da linha
$ Pula para o final da linha
gg Pula para o início do arquivo
G Pula para o final do arquivo
:numero_linha Pula para uma linha específica (por exemplo, :42 vai para a linha 42)
Ctrl+F Rola uma página para baixo
Ctrl+B Rola uma página para cima
3dd apaga 3 linhas, 5yy copia 5 linhas, 10j desce 10 linhas. Essa é uma das chaves da eficiência do vim: use prefixos numéricos para evitar teclas repetidas.
(4) Operações de Edição no vim (Modo Normal)
i Inserir antes do cursor (entra no modo de inserção)
a Inserir depois do cursor
o Abre uma nova linha abaixo e entra no modo de inserção
O Abre uma nova linha acima e entra no modo de inserção
x Apaga o caractere sob o cursor
dd Apaga a linha atual
dw Apaga uma palavra
d$ Apaga até o final da linha
yy Copia a linha atual (yank)
yw Copia uma palavra
p Cola depois do cursor
P Cola antes do cursor
u Desfazer
Ctrl+R Refazer
(5) Busca e Substituição no vim
# Buscar (modo normal)
/padrao Busca avançada pelo padrão
?padrao Busca reversa pelo padrão
n Vai para a próxima ocorrência
N Vai para a ocorrência anterior
# Substituir (modo de linha de comando)
:%s/antigo/novo/g Substitui todo "antigo" por "novo" no arquivo inteiro
:%s/antigo/novo/gc Substitui tudo pedindo confirmação em cada ocorrência
:5,20s/antigo/novo/g Substitui apenas nas linhas 5-20
(6) ▶ Exemplo: Editar um Arquivo com nano
# Criar e editar um arquivo
nano ola.txt
# No nano:
# 1. Digite "Olá Linux!"
# 2. Ctrl + O → aperte Enter para salvar
# 3. Ctrl + X → sair do nano
# Ver o conteúdo do arquivo
cat ola.txt
Saída:
TEXTOlá Linux!
(7) ▶ Exemplo: Operações Básicas do vim
# Abrir um arquivo
vim pratica.txt
# Sequência de prática:
# 1. Aperte i → entra no modo de inserção
# 2. Digite "Esta é a linha 1" → aperte Enter
# 3. Digite "Esta é a linha 2"
# 4. Aperte Esc → volta ao modo normal
# 5. Digite :wq → aperte Enter para salvar e sair
(8) ▶ Exemplo: Copiar e Colar no vim
# 1. Abra um arquivo com vim
vim pratica.txt
# 2. yy para copiar a linha atual
# 3. p para colar abaixo
# 4. Aperte p várias vezes para colar várias vezes
# 5. 5yy para copiar 5 linhas
# 5p para colar 5 vezes
# 6. dd para apagar a linha atual
# 7. 3dd para apagar 3 linhas
(9) ▶ Exemplo: Busca e Substituição no vim
vim config.txt
# Buscar por nginx
/nginx
n # Próxima ocorrência
N # Ocorrência anterior
# Substituir todas as ocorrências de "port" por "PORT"
:%s/port/PORT/g
# Substituir com confirmação
:%s/port/PORT/gc
# Cada ocorrência perguntará: y confirma / n pula / a todas
(10) ▶ Exemplo: Configuração do vim (~/.vimrc)
Crie um arquivo de configuração simples .vimrc para tornar o vim mais amigável:
cat > ~/.vimrc << 'EOF'
syntax on " Realce de sintaxe
set number " Mostrar números de linha
set tabstop=2 " Largura da tabulação: 2
set shiftwidth=2 " Largura da indentação: 2
set expandtab " Usar espaços em vez de tabs
set autoindent " Indentação automática
set cursorline " Destacar linha atual
set hlsearch " Destacar resultados da busca
set ignorecase " Busca sem diferenciar maiúsculas/minúsculas
set incsearch " Busca incremental
EOF
(11) ▶ Exemplo Abrangente: Editar um Arquivo de Configuração do Nginx com vim
# Abrir a configuração padrão do Nginx
sudo vim /etc/nginx/sites-available/default
# Passos de operação:
# 1. /server_name Buscar por server_name
# 2. n Pular para a próxima ocorrência
# 3. i Entrar no modo de inserção e modificar o domínio
# 4. Esc Sair do modo de inserção
# 5. /root Buscar pelo caminho root
# 6. Modificar o diretório raiz do site
# 7. :wq Salvar e sair
# 8. sudo nginx -t Testar a configuração
# 9. sudo systemctl reload nginx Recarregar a configuração
❓ Perguntas Frequentes
P: Como sair do vim (a pergunta clássica)? R: Em ordem:
Esc(garanta que está no modo normal) →:(entra no modo de linha de comando) →q(sair) ouq!(forçar saída sem salvar) ouwq(salvar e sair).
P: Devo aprender nano ou vim? R: Comece com nano (barreira zero, dicas na parte inferior) e depois aprenda vim aos poucos. Quando estiver confortável com vim, ele será muito mais eficiente — mas para "editar um arquivo de configuração ocasionalmente", o nano dá conta do recado.
P: Como desfazer no vim? R: Aperte
uno modo normal para desfazer,Ctrl + Rpara refazer. Aperteurepetidamente para desfazer várias alterações.
P: Como mostrar os números de linha no vim? R: Digite
:set numberno modo de linha de comando. Para mostrar por padrão, adicioneset numberao~/.vimrc.
P: Existe uma forma melhor de editar arquivos remotamente? R: A extensão VS Code Remote - SSH permite editar arquivos remotos no seu VS Code local. JetBrains Gateway oferece funcionalidade semelhante. Mas nem sempre você terá essas ferramentas — aprender o básico do vim continua sendo uma habilidade essencial.
📖 Resumo
- nano: O mais simples, com dicas de atalhos na parte inferior, ótimo para iniciantes e edições ocasionais
- vim: Três modos — Normal (movimento/operações) / Inserção (edição) / Linha de comando (salvar/sair/buscar)
- Três passos básicos do vim:
iinserir →Escsair →:wqsalvar e sair - Buscar:
/padrão+npróxima /Nanterior - Substituir:
:%s/antigo/novo/gpara substituição global - Crie
~/.vimrcpara tornar o vim mais amigável (números de linha / realce de sintaxe / realce de busca)
📝 Exercícios
- Básico (Dificuldade ⭐): Use o nano para criar e editar
ola.txt, escreva três linhas de texto, salve e saia; em seguida, abra o mesmo arquivo no vim e pratique a movimentação do cursor (h/j/k/l/w/b/gg/G) - Intermediário (Dificuldade ⭐⭐): No vim, copie a linha atual (yy) e cole (p) 5 vezes, depois busque uma palavra no arquivo e navegue com
n/N, e por fim faça uma substituição com:%s/antigo/novo/g - Avançado (Dificuldade ⭐⭐⭐): Crie um arquivo de configuração
~/.vimrc(realce de sintaxe + números de linha + tabulação de largura 2 + realce de busca), depois use vim para editar/etc/ssh/sshd_config(requer sudo), praticando operações de busca e substituição