DEV Community

Cover image for Tmux na Prática - Navegação, Painéis e Organização de Layout
Rafael Dutra for apsis-cc

Posted on • Edited on

Tmux na Prática - Navegação, Painéis e Organização de Layout

Demonstração de maximizar um painel do tmux Maximizando um painel — gpakosz/.tmux, licença MIT (repassado via wsrv.nl -- cloud.githubusercontent.com direto é instável no proxy do Dev.to)

1. Retomando: Sessões, Janelas e Painéis

Na primeira parte desta série vimos o que é o tmux, o modelo cliente-servidor por trás dele e os comandos básicos para criar, desanexar e reconectar a uma sessão. Agora que a sessão já existe e está rodando, o foco deste artigo é o que acontece dentro dela: como navegar entre janelas, dividir a tela em painéis, reorganizar esse layout e mover conteúdo entre eles — o conjunto de comandos que efetivamente vira hábito no dia a dia.

Todos os atalhos abaixo partem do prefixo padrão Ctrl+b: pressiona-se e solta-se essa combinação, depois a tecla do comando.

2. Trabalhando com Janelas

Cada sessão pode ter várias janelas, numeradas a partir de 0. Os comandos mais usados:

Ação Atalho
Criar nova janela Ctrl+b c
Ir para a próxima janela Ctrl+b n
Ir para a janela anterior Ctrl+b p
Ir direto para a janela N Ctrl+b N
Listar janelas e escolher interativamente Ctrl+b w
Renomear a janela atual Ctrl+b ,
Fechar a janela atual Ctrl+b &

Nomear janelas (Ctrl+b ,) compensa rápido: em vez de lembrar que "janela 2" é o servidor de desenvolvimento, a barra de status já mostra o nome que você escolheu, tipo dev, logs ou db.

3. Dividindo a Tela em Painéis

Painéis (panes) dividem uma janela em múltiplas áreas visíveis simultaneamente, cada uma com seu próprio shell:

Ação Atalho
Dividir painel na horizontal (um em cima do outro) Ctrl+b "
Dividir painel na vertical (lado a lado) Ctrl+b %
Mover para o próximo painel Ctrl+b o
Mover para o painel em uma direção Ctrl+b + seta
Fechar o painel atual Ctrl+b x
Mostrar números dos painéis (para pular direto) Ctrl+b q

Um layout comum de desenvolvimento — editor à esquerda, servidor e logs à direita, um em cima do outro — é montado assim, partindo de uma janela única:

Ctrl+b %      # divide na vertical: editor | direita
Ctrl+b o      # move para o painel da direita
Ctrl+b "      # divide esse painel na horizontal: servidor / logs
Enter fullscreen mode Exit fullscreen mode

Resultando em:

+------------------+------------------+
|                  |     servidor      |
|                  +------------------+
|      editor      |       logs       |
|                  |                  |
+------------------+------------------+
Enter fullscreen mode Exit fullscreen mode

4. Redimensionando e Reorganizando o Layout

Oh My Tmux! em ação, mostrando janelas e painéis organizados Oh My Tmux! em ação — gpakosz/.tmux, licença MIT (repassado via wsrv.nl -- cloud.githubusercontent.com direto falhava no proxy do Dev.to)

Depois de dividir os painéis, redimensioná-los é feito segurando o prefixo e usando as setas repetidamente, ou de forma mais previsível com resize-pane:

# dentro do tmux, dá pra digitar comandos completos após Ctrl+b :
Ctrl+b :resize-pane -D 10   # move a borda 10 linhas para baixo
Ctrl+b :resize-pane -U 10   # 10 linhas para cima
Ctrl+b :resize-pane -L 10   # 10 colunas para a esquerda
Ctrl+b :resize-pane -R 10   # 10 colunas para a direita
Enter fullscreen mode Exit fullscreen mode

O tmux também vem com layouts pré-definidos que reorganizam todos os painéis de uma janela de uma vez, alternados com Ctrl+b Espaço, ou escolhidos diretamente:

Ctrl+b :select-layout even-horizontal
Ctrl+b :select-layout even-vertical
Ctrl+b :select-layout main-vertical    # um painel grande + coluna com o resto
Ctrl+b :select-layout tiled            # distribui igualmente em grade
Enter fullscreen mode Exit fullscreen mode

main-vertical é particularmente útil para o layout de desenvolvimento citado acima: o editor ocupa a área grande à esquerda, e os demais painéis (servidor, logs, terminal solto) se acomodam em uma coluna à direita.

5. Modo de Cópia: Rolar, Selecionar e Copiar Texto

Diferente de um terminal comum, dentro do tmux o scroll do mouse (ou das setas) não funciona por padrão sem entrar em um modo específico, o copy mode:

Ctrl+b [        # entra no modo de cópia
setas ou PgUp/PgDn   # navega pelo histórico
Espaço          # inicia seleção (com emulação vi habilitada)
Enter           # copia a seleção e sai do modo
Ctrl+b ]        # cola o que foi copiado
q               # sai do modo de cópia sem copiar nada
Enter fullscreen mode Exit fullscreen mode

Para usar as teclas de movimentação no estilo vi (h, j, k, l, v para selecionar, y para copiar) dentro do copy mode, é preciso habilitar isso na configuração — assunto do próximo artigo desta série, que trata de personalização.

6. Comandos Úteis do Dia a Dia (Resumo)

Categoria Atalho Ação
Sessão Ctrl+b d Desanexar
Sessão Ctrl+b s Listar/trocar de sessão
Janela Ctrl+b c Nova janela
Janela Ctrl+b n / p Próxima / anterior
Painel Ctrl+b % Dividir vertical
Painel Ctrl+b " Dividir horizontal
Painel Ctrl+b o Alternar painel
Painel Ctrl+b x Fechar painel
Cópia Ctrl+b [ Entrar em copy mode

Vale imprimir (ou fixar em algum lugar visível) essa tabela nas primeiras semanas de uso — depois de algumas sessões, os atalhos mais usados viram automáticos.

7. Conclusão e Próximos Passos

Com sessões, janelas e painéis sob controle, o tmux já substitui boa parte da necessidade de múltiplas janelas do emulador de terminal. No próximo artigo, o foco muda para deixar tudo isso com a cara que você quiser: personalização de cores, status bar e os plugins mais úteis para o dia a dia, incluindo o gerenciador de plugins do tmux (TPM).


Imagem de capa: Logo do tmux, por Jason Long — Wikimedia Commons

Referências:

  1. tmux — Manual page
  2. tmux GitHub Wiki — Getting Started

Top comments (0)