Ctrl+bC-b x como:
pressione Ctrl+b, solte, depois pressione
x.
| Nova janela | C-b c |
Cria uma "aba" nova |
| Listar janelas | C-b w |
Seletor de janelas |
| Próxima / anterior | C-b n / C-b p |
Vai passando pelas janelas |
| Ir por número | C-b 0..9 |
Vai direto pra janela pelo índice |
| Última janela usada | C-b l |
Alterna "voltar pra anterior" |
| Renomear janela | C-b , |
Troca o nome da janela atual |
| Fechar janela | C-b & |
Mata a janela inteira |
| Split lado a lado (vertical) | C-b % |
Divide em colunas |
| Split em cima/baixo (horizontal) | C-b " |
Divide em linhas |
| Mudar pane (ciclo) | C-b o |
Vai alternando |
| Ir pra última pane | C-b ; |
Volta pra pane anterior |
| Ir por direção | C-b ← ↑ ↓ → |
Vai pra pane na direção |
| Mostrar números das panes | C-b q |
Mostra IDs por alguns segundos |
| Alternar layouts | C-b Space |
Varia arranjos automaticamente |
| Zoom (maximizar pane) | C-b z |
Alterna: maximiza / volta |
| Fechar pane | C-b x |
Mata só aquela pane |
| Pane vira janela | C-b ! |
"Desacopla" a pane pra uma janela nova |
| Trocar pane de lado | C-b { / C-b } |
Move a pane na ordem do layout |
| Listar/trocar sessão | C-b s |
Abre seletor de sessões |
| Detach (sair sem matar) | C-b d |
Volta pro shell, sessão continua rodando |
| Renomear sessão | C-b $ |
Troca o nome da sessão atual |
| Ajuda (lista de atalhos) | C-b ? |
— |
| Prompt de comandos do tmux | C-b : |
— |
| Recarregar config | — | source-file ~/.tmux.conf |
| VI keys | emacs keys | |
|---|---|---|
| Entrar no copy-mode | Ctrl+b [ |
|
| Começar seleção | Space |
Ctrl+Space |
| Copiar seleção (vi keys) | Enter |
Alt+w |
| Cancelar / sair do copy-mode | q |
|
| Ir para outro pane | Ctrl+b + setas |
|
| Colar no pane atual | Ctrl+b ] |
|
| Xorg (muito comum no Cinnamon) | xclip |
sudo apt install xclip |
| Wayland | wl-clipboard |
sudo apt install wl-clipboard |
Isso faz: selecionar no copy-mode → copiar → já cai no clipboard do sistema.
| Habilitar "vi keys" | setw -g mode-keys vi |
Space seleciona, Enter copia |
| Xorg → clipboard | bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard" |
Enter copia pro clipboard e sai |
| Xorg (emacs mode) | bind-key -T copy-mode Enter send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard" |
Mesmo, mas em emacs mode |
| Wayland → clipboard | bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "wl-copy" |
Enter copia pro clipboard e sai |
| Wayland (emacs mode) | bind-key -T copy-mode Enter send-keys -X copy-pipe-and-cancel "wl-copy" |
Mesmo, mas em emacs mode |
Depois recarregue:Ctrl+b : source-file ~/.tmux.conf
Você tem dois jeitos:
| "Normal" (terminal) | Use o paste do seu terminal (ex.: Ctrl+Shift+V) |
Simples e funciona sempre |
| "Integrado ao tmux" (opcional) | Bind pra puxar clipboard → carregar no buffer → paste-buffer | Útil se você quer tudo "tmux puro" |
| Xorg | bind-key P run-shell "xclip -o -selection clipboard | tmux load-buffer - && tmux paste-buffer" |
Ctrl+b P |
| Wayland | bind-key P run-shell "wl-paste | tmux load-buffer - && tmux paste-buffer" |
Ctrl+b P |
| Copiar/colar entre panes (tmux) | Ctrl+b [ → selecione → copie → vá ao outro pane → Ctrl+b ] |
| Copiar do tmux pra usar em outros apps | Use copy-pipe-and-cancel com xclip/wl-copy |
| Colar do sistema pro tmux | Ctrl+Shift+V ou binding Ctrl+b P |
| Ligar mouse (sessão atual) | set -g mouse on |
Clique seleciona pane, arrasta resize, scroll no histórico |
| Desligar mouse | set -g mouse off |
Volta ao comportamento tradicional |
| Criar janela com nome | new-window -n NOME |
| Renomear janela atual | rename-window NOME |
| Ir pra janela | select-window -t 3 (ou -t NOME) |
| Mover janela pra posição | move-window -t 1 |
| Trocar janelas de lugar | swap-window -s 1 -t 3 |
| Split lado a lado | split-window -h |
| Split em cima/baixo | split-window -v |
| Redimensionar para a esquerda | resize-pane -L 5 |
| Redimensionar para a direita | resize-pane -R 5 |
| Redimensionar para cima | resize-pane -U 2 |
| Redimensionar para baixo | resize-pane -D 2 |
| Criar nova sessão (sem sair) | new-session -s NOME |
| Trocar pra sessão | switch-client -t NOME |
| Matar sessão atual | kill-session |
| Criar sessão com nome | tmux new -s NOME |
Cria e já entra |
| Entrar numa sessão | tmux attach -t NOME |
Atalho: tmux a -t NOME |
| Criar OU anexar (recomendado) | tmux new -A -s NOME |
Se existir, entra; se não, cria |
| Listar sessões | tmux ls |
Mostra todas as sessões ativas |
| Matar uma sessão | tmux kill-session -t NOME |
Encerra tudo daquela sessão |
| Matar o servidor tmux | tmux kill-server |
Fecha todas as sessões |
| Ver processos do tmux | tmux info |
Debug/diagnóstico |
| Ver opções atuais | tmux show -g |
Opções globais |
| Sincronizar digitação em todos os panes da janela | set-window-option synchronize-panes on |
Tudo que você digita replica em todos os panes |
| Desligar sincronização | set-window-option synchronize-panes off |
Evita executar comandos sem querer em massa |
| Layout em colunas iguais | select-layout even-horizontal |
Bom para logs lado a lado |
| Layout em linhas iguais | select-layout even-vertical |
Bom para vários shells empilhados |
| Layout principal com pane grande | select-layout main-vertical / main-horizontal |
Ideal para editor + terminais auxiliares |
| Mover pane para outra janela | join-pane -s :2.1 -t :1.3 |
Puxa pane de uma janela para outra |
| Buscar para frente | /texto |
Pressione n para próxima ocorrência |
| Buscar para trás | ?texto |
Pressione N para ocorrência anterior |
| Ir topo/fim do histórico | g / G |
Em modo vi |
| Meia tela para cima/baixo | Ctrl+u / Ctrl+d |
Navegação bem mais rápida em logs longos |
| Rolar página inteira | PageUp / PageDown |
Também funciona com mouse ligado |
| Criar sessão destacada (detached) | tmux new-session -d -s dev |
Inicia em background |
| Criar janela e rodar comando | tmux new-window -t dev -n api "npm run dev" |
Abre janela já executando comando |
| Enviar comando para pane específica | tmux send-keys -t dev:api.0 "clear" C-m |
C-m equivale a Enter |
| Capturar output de pane | tmux capture-pane -pt dev:api.0 |
Útil para debug e scripts |
| Salvar histórico da pane em arquivo | tmux capture-pane -pS -2000 -t dev:api.0 > log.txt |
Pega últimas 2000 linhas |
| Sessão inteira | dev |
Ex.: switch-client -t dev |
| Janela por índice | dev:1 |
Ex.: select-window -t dev:1 |
| Janela por nome | dev:api |
Mais legível em scripts |
| Pane específica | dev:api.0 |
Ex.: send-keys -t dev:api.0 "pytest" C-m |
| Atuais (dinâmicos) | :, ., %1 |
Atual janela, atual pane ou pane por ID |
# Prefixo mais confortável (Ctrl+a)
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# Melhora tempo de resposta de teclas
set -sg escape-time 10
# Começar numeração em 1
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on
# Mouse e histórico maior
set -g mouse on
set -g history-limit 100000
# Copy-mode com teclas vi
setw -g mode-keys vi
# Split no diretório atual
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# Reload rápido da config
bind r source-file ~/.tmux.conf \; display-message "tmux.conf recarregado"
# Navegação de panes estilo vim (Alt + h/j/k/l)
bind -n M-h select-pane -L
bind -n M-j select-pane -D
bind -n M-k select-pane -U
bind -n M-l select-pane -R
Depois de salvar, rode: tmux source-file ~/.tmux.conf
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm~/.tmux.conf os plugins desejadosprefix + I para instalar pluginstmux-plugins/tmux-sensible |
Defaults mais seguros e práticos |
tmux-plugins/tmux-resurrect |
Salva/restaura sessões e layouts |
tmux-plugins/tmux-continuum |
Auto-save e restore contínuo |
christoomey/vim-tmux-navigator |
Navegação integrada entre Vim/Neovim e tmux |
| Ver versão do tmux | tmux -V |
Importante para saber quais comandos existem |
| Ver key bindings ativos | tmux list-keys |
Confirma se atalho foi realmente aplicado |
| Ver opções globais | tmux show-options -g |
Inclui comportamento de status/mouse/history |
| Ver opções da janela atual | tmux show-window-options |
Inclui mode-keys e synchronize-panes |
| Iniciar servidor limpo para testar config | tmux -L test -f /dev/null new |
Evita interferência da sua config principal |