Editores de Texto Linux: vi, vim, nano, emacs — Guia Prático
O Linux oferece editores de texto para todos os níveis: desde o universal vi até editores modernos como micro. Este guia cobre editores interactivos, ferramentas de visualização e sed para edição em fluxo.
Neste Artigo
- Introdução aos Editores de Texto Linux
- vi — O Editor Universal
- vim — Vi Improved
- nano — Simples e Intuitivo
- Outros Editores (emacs, micro, ed)
- Visualização não-Interactiva (cat, head, tail, less)
- sed — Edição em Fluxo
- Comparação e Casos de Uso
1. Introdução aos Editores de Texto Linux
Os editores de texto no Linux dividem-se em interactivos (interface para edição directa) e não-interactivos (processam texto em fluxo). Os interactivos principais são vi/vim, nano, emacs e micro. Para visualização rápida usam-se cat, head, tail e less. Para automatização, sed é a ferramenta padrão.
ℹ O vi está disponível em praticamente todos os sistemas Linux/Unix — mesmo instalações mínimas e contentores. É o editor de emergência que todo o sysadmin deve conhecer.
2. vi — O Editor Universal
O vi opera em dois modos: comando (teclas executam acções) e inserção (teclas escrevem texto). ESC regressa ao modo de comando.
# Abrir ficheiro
vi ficheiro.txt
# Modos: comando (ESC) vs inserção
# i — inserir antes do cursor
# a — inserir depois do cursor
# o — nova linha abaixo
# O — nova linha acima
# Guardar e sair
:wq
# Sair sem guardar
:q!
# Guardar sem sair
:w
# Procurar texto
/palavra
# Substituir em todo o ficheiro
:%s/velho/novo/g
# Ir para linha N
:42
# Apagar linha — dd
# Apagar 5 linhas — 5dd
# Copiar linha — yy
# Colar — p
# Desfazer — u
# Refazer — Ctrl+r
3. vim — Vi Improved
O vim (Vi IMproved) adiciona destaque de sintaxe, splits, plugins e configuração persistente via ~/.vimrc.
⚠️ O vim não vem instalado por defeito em algumas distribuições mínimas — instalar com apt install vim ou dnf install vim.
# Instalar
sudo apt install vim
# Abrir com linha específica
vim +42 ficheiro.txt
# Abrir em modo só de leitura
vim -R ficheiro.txt
# Split horizontal / vertical
:split ficheiro2.txt
:vsplit ficheiro2.txt
# Navegar entre splits
Ctrl+w w
# Sintaxe e números de linha
:syntax on
:set number
:set relativenumber
# Configuração persistente em ~/.vimrc
# set number
# syntax on
# set tabstop=4
# set autoindent
# set hlsearch
Documentação oficial: vim.org/docs.php.
4. nano — Simples e Intuitivo
O nano é o editor mais acessível: mostra os atalhos no rodapé (^ = Ctrl) e não tem modos — escreve-se directamente.
# Abrir ficheiro
nano ficheiro.txt
# Abrir com linha específica
nano +42 ficheiro.txt
# Atalhos:
# Ctrl+O — guardar
# Ctrl+X — sair
# Ctrl+K — cortar linha
# Ctrl+U — colar
# Ctrl+W — procurar
# Ctrl+\ — substituir
# Alt+G — ir para linha
# Ctrl+C — posição do cursor
# Configuração em ~/.nanorc
# set linenumbers
# set tabs 4
# set autoindent
# syntax on
Site oficial: nano-editor.org.
5. Outros Editores (emacs, micro, ed)
emacs
Mais do que um editor — é um ambiente extensível em Emacs Lisp com e-mail, calendário e terminal. Atalhos usam Ctrl (C) e Meta/Alt (M): C-x C-s guarda, C-x C-c sai.
micro
Editor moderno com atalhos familiares (Ctrl+S, Ctrl+Q), rato, multi-cursor e realce de sintaxe.
# Instalar micro
curl https://getmic.ro | bash
# Abrir
micro ficheiro.txt
# Ctrl+S guardar, Ctrl+Q sair
ed
O editor original do Unix, linha de comando puro sem interface visual. Raramente usado interactivamente, mas importante historicamente — o sed evoluiu a partir dele.
6. Visualização não-Interactiva (cat, head, tail, less)
cat
# Ver ficheiro
cat ficheiro.txt
# Ver com números de linha
cat -n ficheiro.txt
# Concatenar ficheiros
cat ficheiro1.txt ficheiro2.txt > combinado.txt
# Criar ficheiro (Ctrl+D para terminar)
cat > novo.txt
head / tail
head mostra as primeiras linhas; tail as últimas. tail -f é indispensável para monitorizar registos em tempo real.
# Primeiras 10 linhas
head ficheiro.txt
# Primeiras 20 linhas
head -n 20 ficheiro.txt
# Últimas 10 linhas
tail ficheiro.txt
# Últimas 20 linhas
tail -n 20 ficheiro.txt
# Seguir ficheiro em tempo real
tail -f /var/log/syslog
less
Paginador para ficheiros grandes — permite navegação bidireccional e procura.
# Ver ficheiro paginado
less ficheiro.txt
# Procurar — /palavra
# Próxima ocorrência — n
# Ocorrência anterior — N
# Sair — q
7. sed — Edição em Fluxo
O sed (Stream Editor) processa texto sem abrir editor — ideal para scripts. A operação mais comum é a substituição s/velho/novo/.
# Substituir primeira ocorrência por linha
sed 's/velho/novo/' ficheiro.txt
# Substituir todas as ocorrências
sed 's/velho/novo/g' ficheiro.txt
# Substituir e guardar no próprio ficheiro
sed -i 's/velho/novo/g' ficheiro.txt
# Apagar linhas que contêm "palavra"
sed '/palavra/d' ficheiro.txt
# Apagar linha 5
sed '5d' ficheiro.txt
# Mostrar linhas 10 a 20
sed -n '10,20p' ficheiro.txt
A flag -i modifica o ficheiro original — testar sem -i primeiro para verificar o resultado.
8. Comparação e Casos de Uso
| Ferramenta | Tipo | Curva | Caso de Uso |
|---|---|---|---|
| vi | Interactivo | Íngreme | Emergência, contentores mínimos |
| vim | Interactivo | Íngreme | Programação, configuração |
| nano | Interactivo | Simples | Edição rápida, iniciantes |
| emacs | Interactivo | Íngreme | Ambiente completo |
| cat/head/tail | Visualização | Trivial | Inspecção rápida, registos |
| less | Paginação | Simples | Ficheiros grandes |
| sed | Fluxo | Moderada | Automatização, scripts |
Casos práticos para sysadmins
- Configuração em servidor remoto sem GUI:
vi /etc/hosts— funciona sempre. - Editar scripts com sintaxe:
vim script.sh. - Alteração rápida:
nano /etc/hostname. - Monitorizar logs:
tail -f /var/log/syslog. - Substituição em massa:
sed -i 's/192.168.1.1/10.0.0.1/g' *.conf. - Ver início de registo gigante:
head -n 50 /var/log/syslog.
Comece com nano para tarefas simples, aprenda vi para emergências e evolua para vim quando precisar de mais potência. Para automatização, sed é indispensável.