Modos básicos e keybindings essenciais

TL;DR

Zellij é modal: você sempre está num modo (normal, pane, tab, etc.). Cada modo tem keybindings próprios — a status bar mostra todos. Ctrl-<letra> entra num modo; depois letras isoladas executam ações. Memorize 4 modos pra começar (normal, pane, tab, session) e ~20 keybindings.


O que é / Como funciona

Por que modal

Tmux usa prefixo: Ctrl-b + tecla. Toda ação é um chord de 2 passos a partir do mesmo ponto de entrada.

Zellij usa modos: Ctrl-<letra> entra num modo; dentro do modo, teclas isoladas executam ações. Os modos são estados persistentes — você continua no modo até sair explicitamente (ESC ou repetindo o Ctrl-<letra>).

Vantagem do modal: a status bar do Zellij exibe os atalhos disponíveis no modo ativo. Você não precisa decorar tudo — basta olhar a tela. A descoberta é embutida na interface.

Desvantagem: cada ação exige 2 passos (entrar no modo + executar) em vez de 1 chord direto. Fluxo tem uma fricção inicial até os modos virarem muscle memory.

Os 9 modos

Os modos canônicos do Zellij default:

ModoEntradaPara que serve
Normalestado inicialInput vai direto pro shell/app. Ações Alt disponíveis.
LockedCtrl-gDesliga todos os keybindings do Zellij. Tudo passa pro pane. Útil para Emacs, Helix, qualquer app com Ctrl-<letra>.
PaneCtrl-pSplit, fechar, focar, fullscreen, floating.
TabCtrl-tNova tab, fechar, renomear, navegar, ir por número.
ResizeCtrl-nRedimensiona pane focado.
ScrollCtrl-sScrollback: subir, descer, page up/down.
Searchvia Scroll + sBusca regex no scrollback do pane atual.
SessionCtrl-oDetach, trocar de session, plugins de gerenciamento.
MoveCtrl-hMove o pane focado dentro do grid.

Modos derivados

EnterSearch, RenameTab e RenamePane são estados transitórios de entrada de texto — não são modos canônicos configuráveis. Eles aparecem temporariamente enquanto você digita um nome ou termo de busca e somem ao confirmar ou cancelar.

Como descobrir keybindings

A status bar (barra inferior do Zellij) mostra os atalhos disponíveis no modo ativo. Quando você entra em modo Pane, ela lista todas as ações de pane. Quando está em Normal, mostra os Ctrl-<letra> de entrada para cada modo.

Se a status bar não aparecer, verifique se pane_frames true está na config (valor default). O plugin status-bar precisa estar carregado — ele está ativo no layout default do Zellij.

Mnemônica

Associe a letra de cada modo à sua função:

  • Ctrl-ppane
  • Ctrl-ttab
  • Ctrl-sscroll / search
  • Ctrl-o — session
  • Ctrl-n — rensize
  • Ctrl-ggrab keys (locked / passthrough)
  • Ctrl-h — move (move usa h por ser a letra do movimento vim pra esquerda; m já era usado em outro contexto)

Na prática

Cheatsheet das 20 primeiras keybindings

Keybindings verificadas no default.kdl do Zellij:

ModoSequênciaAçãoQuando usar
(qualquer)Ctrl-pEntra modo PaneVai mexer em panes
PanenNovo pane vertical (split direita)Comparar dois outputs lado a lado
PanedNovo pane horizontal (split abaixo)Log ou output abaixo do editor
PanexFecha pane focadoLimpar pane que não precisa mais
PanefToggle fullscreen do paneFoco temporário sem mudar layout
PanewToggle floating paneTerminal extra sem destruir layout
Paneh / j / k / lFoca pane na direção (esq/baixo/cima/dir)Navegar entre panes no modo Pane
PanezToggle pane framesEsconder/mostrar bordas dos panes
(qualquer)Ctrl-tEntra modo TabVai mexer em tabs
TabnNova tabSeparar contextos de trabalho
TabxFecha tab atualLimpar contexto encerrado
TabrRenomeia tab atualOrganizar tabs por projeto/tarefa
Tabh / lTab anterior / próximaNavegar sequencialmente
Tab[1-9]Vai para tab NAtalho direto por número
(qualquer)Ctrl-oEntra modo SessionOperações de session
SessiondDetach (session continua rodando)Sair preservando o trabalho
SessionwAbre session manager (floating)Trocar ou listar sessions
(qualquer)Ctrl-sEntra modo ScrollVer histórico do pane
Scrolld / uMetade da página pra baixo/cimaNavegar scrollback rapidamente
ScrollsEntra Search mode (regex)Buscar texto no histórico
(qualquer)Ctrl-gEntra/sai do modo LockedUsar app com atalhos conflitantes

Alt shortcuts em Normal mode

Em Normal mode, algumas ações estão disponíveis sem entrar em modo:

  • Alt-n — novo pane (split)
  • Alt-h / Alt-l — move foco ou troca de tab (dependendo se há panes na direção)
  • Alt-j / Alt-k — move foco pane abaixo/acima
  • Alt-f — toggle floating pane

Esses atalhos existem pra ações frequentes que não exigem entrar num modo dedicado.

Workflow exemplo (primeiros 5 min em Zellij)

1. Abrir terminal, digitar: zellij -s trabalho
   → Está em Normal mode. Digite comandos normalmente.
 
2. Quer um terminal à direita?
   Ctrl-p → n
   → Novo pane aparece à direita.
 
3. Quer navegar pro pane original?
   Ctrl-p → h   (ou Alt-h em Normal mode)
   → Foco volta pro pane esquerdo.
 
4. Quer ver o output completo em fullscreen?
   Ctrl-p → f
   → Pane expande. Repita Ctrl-p → f pra sair.
 
5. Quer separar contexto (novo projeto)?
   Ctrl-t → n
   → Nova tab. Ctrl-t → r para renomear.
 
6. Precisa sair mas quer preservar tudo?
   Ctrl-o → d   (detach)
   → Volta pro prompt do OS. Session continua rodando.
   → Retornar: zellij attach trabalho

Armadilhas

(1) Ficar no modo errado e executar ações sem querer

Causa: entrar em modo Pane para fazer um split, executar a ação, e esquecer que ainda está no modo Pane. Digitar x querendo escrever x no shell → o pane fecha.

Sintoma: pane fechou sem intenção; shell sumiu; layout mudou sem explicação.

Como detectar: olhar a status bar — ela mostra o modo ativo em destaque. Se não estiver em Normal, há um label colorido indicando o modo.

Solução: após qualquer ação num modo, checar se voltou pra Normal (ESC ou repetir Ctrl-<modo>). Prática: ao terminar uma ação em modo Pane, pressionar ESC conscientemente até criar o hábito.


(2) Usar Locked achando que “trava o cursor” ou “pausa o pane”

Causa: o nome “locked” sugere imobilidade. Na realidade, Locked significa que os keybindings do Zellij estão desativados — o input continua chegando ao pane normalmente.

Sintoma: entrar em Locked esperando que o pane pare de receber input, ficar confuso que ele continua funcionando.

Como detectar: a status bar mostra “LOCKED” e lista apenas o atalho de saída (Ctrl-g).

Solução: usar Locked exclusivamente quando um app roda dentro do Zellij e precisa de atalhos que conflitam com o Zellij (Emacs Ctrl-p, Helix, etc.). Para simplesmente parar de interagir com um pane, apenas pare de digitar.


(3) Status bar desligada — não saber em qual modo está

Causa: config customizada sem o plugin status-bar, ou pane_frames false sem substituição visual.

Sintoma: Zellij abre sem barra inferior; usuário entra num modo sem perceber; ações estranhas acontecem.

Como detectar: se não há barra na parte inferior mostrando modo e atalhos, o plugin status-bar não está ativo.

Solução: no Zellij stock (sem config customizada), o plugin está ativo por default. Para reativar: incluir o plugin status-bar no layout KDL, ou usar zellij --layout default para garantir o layout padrão.


(4) Muscle memory de tmux — esperar Ctrl-b como prefixo

Causa: quem vem do tmux está habituado a Ctrl-b <key> como chord único. No Zellij, Ctrl-b não é o prefixo padrão — os modos são entrados com Ctrl-p, Ctrl-t, etc.

Sintoma: digitar Ctrl-b n esperando nova janela, e nada acontece (ou o n vai pro shell).

Como detectar: o Zellij tem um modo Tmux opcional (ativável via config) que emula o prefixo Ctrl-b. Se esse modo não estiver ativo, os atalhos do tmux não funcionam.

Solução: treinar os modos do Zellij separadamente. Alternativamente, ativar o modo Tmux no config para período de transição. A longo prazo, os modos do Zellij são mais descobríveis pelo auxílio da status bar.


(5) Esperar que h/j/k/l funcionem em Normal mode para navegar panes

Causa: em editores modais (Neovim, Helix), hjkl movem o cursor em Normal mode. No Zellij, Normal mode passa todo input pro shell — h, j, k, l escrevem as letras no shell.

Sintoma: digitar h em Normal mode esperando mover o foco, e a letra aparecer no shell.

Como detectar: olhar o shell — se a letra aparece no prompt, você está em Normal mode.

Solução: para navegar entre panes: entrar em modo Pane (Ctrl-p) e usar hjkl, ou usar Alt-h/Alt-l/Alt-j/Alt-k em qualquer modo (esses atalhos funcionam em Normal sem entrar em Pane).


(6) Confundir Ctrl-p f (fullscreen) com Ctrl-p z (toggle pane frames)

Causa: em tmux, Ctrl-b z é o zoom/fullscreen. A associação letra-ação diverge no Zellij.

Sintoma: pressionar Ctrl-p z esperando fullscreen e as bordas dos panes somem/aparecem.

Como detectar: z em modo Pane executa TogglePaneFrames (esconde/mostra as bordas visuais dos panes); f executa ToggleFocusFullscreen (expande 1 pane pra ocupar toda a área).

Solução: memorizar: f = fullscreen em modo Pane. O status bar mostra o mapeamento correto.


Em inglês

  • modalmodal. “modo de software que opera em estados distintos onde as teclas têm significado diferente.”
  • modemode. “estado que define como o input é interpretado; no Zellij, ativado via Ctrl-<letra>.”
  • keybindingkeybinding. “associação de uma combinação de teclas com uma ação.”
  • shortcutshortcut. “atalho de teclado pra uma ação; uso coloquial de keybinding.”
  • chordchord. “sequência de teclas pressionadas em ordem pra ativar um comando (ex.: Ctrl-b n no tmux).”
  • discoverabilitydiscoverability. “qualidade de uma UI de mostrar suas opções disponíveis sem precisar decorar; o status bar do Zellij é projetado pra isso.”
  • status barstatus bar. “barra inferior do Zellij que exibe o modo atual e os keybindings disponíveis.”
  • passthroughpassthrough. “modo onde o input passa direto pro app dentro do pane sem ser interceptado pelo multiplexer; ativado no modo Locked.”
  • muscle memorymuscle memory. “memória motora dos atalhos adquirida pela repetição, sem esforço consciente.”
  • cheatsheetcheatsheet. “tabela de referência rápida listando sequências de teclas e suas ações.”

Veja também


Referências