RIFERIMENTO RAPIDO TMUX
Sessioni, finestre, riquadri, modalità copia, configurazione
Gestione delle sessioni
Creazione e connessione
tmux # new session
tmux new -s work # new named session
tmux attach -t work # attach to session
tmux attach -dt work # detach others, attach
Comandi per le sessioni
| tmux ls | Elenca tutte le sessioni |
| tmux kill-session -t work | Termina una sessione con nome |
| tmux kill-server | Termina il server tmux e tutte le sessioni |
| tmux rename-session -t old new | Rinomina una sessione |
| Prefisso d | Disconnetti dalla sessione corrente |
| Prefisso $ | Rinomina la sessione corrente |
| Prefisso s | Elenca le sessioni (interattivo) |
Il prefisso predefinito è Ctrl-b
Finestre
Tasti di scelta rapida per le finestre
| Prefisso c | Crea una nuova finestra |
| Prefisso , | Rinomina la finestra corrente |
| Prefisso & | Chiudi la finestra corrente (con conferma) |
| Prefisso n | Finestra successiva |
| Prefisso p | Finestra precedente |
| Prefisso 0-9 | Passa alla finestra per numero |
| Prefisso w | Elenca le finestre (selettore interattivo) |
| Prefisso l | Torna all'ultima finestra attiva |
Comandi per le finestre
tmux new-window -t work # new window in session
tmux swap-window -t 0 # move window to index 0
tmux move-window -t 3 # renumber to index 3
Riquadri
Divisione e chiusura
| Prefisso % | Dividi orizzontalmente (sinistra | destra) |
| Prefisso " | Dividi verticalmente (sopra / sotto) |
| Prefisso x | Chiudi il riquadro corrente (con conferma) |
| Prefisso ! | Sposta il riquadro nella sua finestra |
| Prefisso z | Attiva/disattiva lo zoom del riquadro (finestra intera) |
Ridimensionamento dei riquadri
| Prefisso Ctrl-Freccia | Ridimensiona di 1 cella |
| Prefisso Alt-Freccia | Ridimensiona di 5 celle |
| Prefisso Spazio | Cicla tra i layout |
Layout: even-horizontal, even-vertical, main-horizontal, main-vertical, tiled
Navigazione
Spostamento tra riquadri
| Prefisso Freccia | Sposta al riquadro nella direzione |
| Prefisso o | Cicla al riquadro successivo |
| Prefisso q | Mostra i numeri dei riquadri, poi premi il numero per saltare |
| Prefisso { | Scambia il riquadro con il precedente |
| Prefisso } | Scambia il riquadro con il successivo |
Spostamento tra sessioni
| Prefisso ( | Passa alla sessione precedente |
| Prefisso ) | Passa alla sessione successiva |
| Prefisso s | Selettore sessioni (vista ad albero) |
| Prefisso w | Selettore finestre in tutte le sessioni |
Modalità copia
Entrata e navigazione
| Prefisso [ | Entra in modalità copia |
| q | Esci dalla modalità copia |
| Freccia / hjkl | Sposta il cursore (modalità vi) |
| Ctrl-u / Ctrl-d | Pagina su / pagina giù |
| g / G | Salta all'inizio / alla fine |
| / | Cerca in avanti |
| ? | Cerca indietro |
| n / N | Corrispondenza di ricerca successiva / precedente |
Selezione e copia
| Spazio | Avvia la selezione (modalità vi) |
| Invio | Copia la selezione ed esci |
| Prefisso ] | Incolla il buffer |
| v | Attiva/disattiva la selezione rettangolare (modalità vi) |
Abilita modalità vi: set -g mode-keys vi
Configurazione
Impostazioni comuni (~/.tmux.conf)
set -g mouse on # enable mouse
set -g base-index 1 # windows start at 1
set -g renumber-windows on # renumber on close
set -g default-terminal "tmux-256color"
set -g history-limit 50000
Ricarica configurazione
tmux source-file ~/.tmux.conf # from shell
# or Prefix : then type:
source-file ~/.tmux.conf
Barra di stato
Opzioni della barra di stato
set -g status-position top
set -g status-style "bg=black,fg=white"
set -g status-left "[#S] "
set -g status-right "%H:%M %d-%b"
set -g status-interval 5
Variabili di formato
| #S | Nome della sessione |
| #I | Indice della finestra |
| #W | Nome della finestra |
| #P | Indice del riquadro |
| #H | Hostname |
| #T | Titolo del riquadro |
Tasti di scelta rapida
Binding personalizzati
# change prefix to Ctrl-a
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# vim-style pane navigation
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
Sintassi dei binding
| bind X comando | Associa Prefisso + X al comando |
| bind -n M-Sinistra prev | Associa senza prefisso (Alt-Sinistra) |
| bind -r H resize-pane -L 5 | Binding ripetibile |
| unbind X | Rimuovi un binding |
| Prefisso ? | Elenca tutti i tasti di scelta rapida correnti |
Scripting
Layout scriptati
tmux new-session -d -s dev
tmux send-keys -t dev "vim" Enter
tmux split-window -h -t dev
tmux send-keys -t dev "npm run dev" Enter
tmux attach -t dev
Comandi utili
| tmux send-keys -t sess 'cmd' Enter | Invia sequenze di tasti a una sessione |
| tmux capture-pane -p | Stampa il contenuto del riquadro su stdout |
| tmux display-message '#S' | Mostra un messaggio / variabile |
| tmux set-environment -g VAR val | Imposta una variabile d'ambiente |
| tmux list-keys | Elenca tutti i tasti di scelta rapida |
Pattern comuni
~/.tmux.conf consigliato
set -g mouse on
set -g base-index 1
set -g mode-keys vi
set -g status-position top
set -g history-limit 50000
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
Ricette rapide
| Sopravvivere alla disconnessione SSH | tmux new -s work → disconnetti → tmux attach -t work |
| Condividere la sessione | Entrambi gli utenti tmux attach -t same (sola lettura: -r) |
| Salvare lo scrollback | tmux capture-pane -S -3000 -p > log.txt |
| Chiudere un riquadro bloccato | Prefisso x, oppure tmux kill-pane -t %N |
| Riordinare le finestre | :swap-window -s 3 -t 1 |