Terminal

Melhorar o terminal do macOS: zsh-syntax-highlighting, lsd, bat e Powerlevel10k

Guia prático para transformar o terminal do macOS com realce de sintaxe, ls com ícones, cat com syntax highlighting e o prompt Powerlevel10k.

Lembro-me do dia em que vi o terminal de um colega durante uma code review. Ele fez ls e apareceram ícones nos ficheiros. Depois cat e o código abriu com cores. O prompt mostrava o branch do git, o tempo do último comando, até o ícone do SO. O meu, preto e branco, parecia um TRS-80 em 2026. Pedi-lhe logo o setup.

Com quatro ferramentas — zsh-syntax-highlighting, lsd, bat e Powerlevel10k — o terminal do macOS passa de monótono a informativo. E tudo com o Homebrew, sem pagar nada.

Antes vs Depois - terminal macOS


Pré-requisitos

Antes de começar, precisas de:

  • macOS ou Linux — este guia é focado em macOS, mas a maioria funciona em Linux com pequenos ajustes
  • Homebrew instalado — vamos usar o brew para instalar quase tudo
  • Terminal aberto — abre o Terminal.app (ou iTerm2, se preferires)
  • Direitos de administrador — vais precisar de sudo para algumas coisas

Se tens um Mac com Apple Silicon (M1/M2/M3/M4), alguns paths são diferentes (/opt/homebrew/ em vez de /usr/local/). Vou assinalar essas diferenças ao longo do guia.


1. Instalar o Homebrew (se ainda não tens)

O Homebrew é o gestor de pacotes para macOS. Penso nele como o apt do macOS — permite instalar, atualizar e remover software pela linha de comandos.

Se já tens Homebrew, salta este passo. Se não, abre o terminal e cola:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Depois de instalar, se tens Apple Silicon (M1+), adiciona isto ao .zshrc:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
eval "$(/opt/homebrew/bin/brew shellenv)"

Para verificar que está tudo bem:

brew doctor

Se diz “Your system is ready to brew”, estamos prontos.


2. Realce de sintaxe (zsh-syntax-highlighting)

Já te aconteceu escrever um comando, carregar no Enter e levar com um command not found? O zsh-syntax-highlighting resolve isso. Enquanto escreves, o terminal realça o comando:

  • Verde — comando válido e instalado
  • Vermelho — comando inválido ou não encontrado
  • Sublinhado — caminhos de ficheiros e diretórios que existem

zsh-syntax-highlighting

brew install zsh-syntax-highlighting

Adiciona ao final do ~/.zshrc:

source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

Atenção: Esta linha tem de estar no final do .zshrc, depois de carregar o tema e plugins. Caso contrário, podes ter erros ou o highlighting pode não funcionar.

Para testar: abre um novo terminal (ou faz source ~/.zshrc) e escreve gti — o texto fica a vermelho, porque não é um comando. Corrige para git e passa a verde. Isto é o highlighting a funcionar.


3. ls com esteroides (lsd)

O ls padrão do macOS mostra ficheiros todos cinzentos. O lsd (LSDeluxe) é um ls moderno, escrito em Rust, que mostra ícones, cores, data formatada e tamanhos legíveis.


Instalar fontes Nerd

Para veres os ícones, precisas de uma Nerd Font — fontes normais com ícones extra adicionados.

brew install --cask font-hack-nerd-font

Depois, abre as Preferências do Terminal (Cmd + ,), vai a Profiles > Text > Font e muda para Hack Nerd Font.


Instalar e configurar o lsd
brew install lsd

Adiciona ao ~/.zshrc:

alias ls='lsd'
alias ll='lsd -l'
alias la='lsd -a'

lsd em ação

Para testar: abre um novo terminal e corre ll na tua home — deves ver os diretórios a azul, ficheiros normais a branco, e escondidos a cinzento, tudo com ícones.


4. cat melhorado (bat)

O cat padrão mostra o conteúdo de ficheiros em texto simples. O bat é um cat com superpoderes:

  • Syntax highlighting automático para dezenas de linguagens
  • Números de linha visíveis na margem
  • Paginação integrada (para ficheiros grandes)
  • Integração com git (mostra alterações na margem)
brew install bat

Configura o alias no ~/.zshrc:

export BAT_THEME='gruvbox-dark'
alias cat='bat --paging=never'

bat - cat com syntax highlighting

Podes explorar outros temas:

bat --list-themes

Para pré-visualizar um tema específico:

bat --theme=Dracula ~/.zshrc

Para testar: corre cat ~/.zshrc e vê o resultado com cores e números de linha. Parece outro mundo, não?


5. Powerlevel10k — o prompt que faz impressão

O Powerlevel10k é o tema para ZSH que transforma o prompt (aquele user@host ~ %) numa barra de informação visual. Mostra:

  • O diretório atual (com atalhos inteligentes)
  • O branch e estado do git (se estiveres num repositório)
  • O tempo de execução do último comando
  • Ícone do sistema operativo
  • Node version, Python venv, Docker — tudo quando relevante

Powerlevel10k - prompt inteligente

brew install powerlevel10k

Adiciona ao ~/.zshrc:

echo "source $(brew --prefix)/share/powerlevel10k/powerlevel10k.zsh-theme" >> ~/.zshrc

Quando abrires um novo terminal, o Powerlevel10k lança um assistente de configuração interativo — respondes a umas perguntas e o tema configura-se sozinho. É espetacular.

Nota (outubro de 2026): o Powerlevel10k está em modo de manutenção mínima — o autor avisa no README que não há funcionalidades novas em preparação e que a maioria dos bugs não será corrigida. Continua a funcionar bem, mas se preferires um prompt com desenvolvimento ativo, o Starship é a alternativa mais popular.

Para reconfigurar mais tarde:

p10k configure

Configuração final do .zshrc

Aqui está o meu .zshrc completo, com tudo o que vimos e mais alguns aliases úteis que fui acumulando:

# Enable Powerlevel10k instant prompt
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

# Powerlevel10k
source /opt/homebrew/opt/powerlevel10k/share/powerlevel10k/powerlevel10k.zsh-theme
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh

# zsh-syntax-highlighting (no FINAL do ficheiro)
source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

# bat
export BAT_THEME='gruvbox-dark'
alias cat='bat --paging=never'

# lsd
alias ls='lsd'
alias ll='lsd -l'
alias la='lsd -a'

# Aliases pessoais
alias meu-servidor='ssh [email protected]'

Altera os paths /opt/homebrew/ para /usr/local/ se tens Intel Mac.


O terminal é teu

O maior ganho foi prático. O zsh-syntax-highlighting já me salvou de escrever comandos errados dezenas de vezes. O prompt do Powerlevel10k mostra o branch do git sem eu ter de correr git status vinte vezes ao dia. E o bat — antes eu evitava o cat, agora uso-o constantemente.

Há quem diga que configurar o terminal é perder tempo. Para mim é o oposto: poupa-me tempo todos os dias.

Se quiseres ir mais longe, experimenta zsh-autosuggestions, fzf ou tmux. Mas aviso já — depois de teres o terminal com cores, ícones e informação útil em vez do prompt de série, não há volta a dar. Experimenta e depois diz-me se voltaste atrás.


Recursos

Partilhar

Comentários 0

Ainda sem comentários — sê o primeiro.