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

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.

Artigos Relacionados