$ tmux — corso in 10 lezioni
Lezione 02 di 10

Il prefix, e le finestre

Tutti i tasti di tmux passano da una combinazione sola. Capire perché è fatta così — e come cambiarla senza pentirsene — è il passo che trasforma tmux da ostacolo a strumento.

Teoria

Perché c'è un tasto in mezzo

tmux ha un problema che gli editor non hanno: i tasti che premi devono arrivare ai programmi che gira. Se Ctrl+c servisse a tmux, non potresti più interrompere niente. La soluzione è un tasto di attivazione: una combinazione che nessun programma usa, premuta la quale il tasto successivo va a tmux invece che alla shell.

L'impostazione di fabbrica è Ctrl+b. Da qui in avanti la chiamo prefix, perché quasi tutti finiscono per cambiarla e perché le scorciatoie vanno ricordate come «prefix più qualcosa», non come combinazioni di tre dita.

la sequenza, passo per passo
Ctrl-b   # 1. premi e lascia: tmux ora sta ascoltando
c        # 2. premi il comando: crea una finestra nuova

# NON è Ctrl-b-c tenuti insieme.
# Se sbagli e non succede nulla, premi Esc e ricomincia.

I tre comandi da sapere prima di tutti gli altri

TastiEffetto
prefix ?l'elenco di tutte le scorciatoie attive, la tua sessione compresa. Si esce con q.
prefix dstacca la sessione (lezione 1)
prefix :apre la riga di comando di tmux, dove si può fare tutto (lezione 7)

prefix ? merita una raccomandazione esplicita: è generato dalla tua configurazione, quindi è sempre corretto, a differenza di qualsiasi promemoria stampato. Quando non ricordi un tasto, guarda lì prima di cercare in rete.

Pratica

Le finestre: una per attività

sito 0:bash 1:vim* 2:server 3:log 10:05 12-set

Una finestra è una schermata intera. Il modo sano di usarle è per attività e non per file: una per l'editor, una per il server di sviluppo, una per i comandi al volo, una per i log. L'asterisco nella status bar indica la finestra attiva, il trattino l'ultima visitata.

TastiEffetto
prefix ccrea una finestra nuova (create)
prefix n · pfinestra successiva / precedente
prefix 0…9salta direttamente a quel numero
prefix ltorna all'ultima finestra usata (last) — avanti e indietro fra due
prefix welenco interattivo di finestre e sessioni, con anteprima
prefix ,rinomina la finestra corrente
prefix &chiude la finestra, chiedendo conferma
prefix fcerca una finestra per nome o per testo che contiene
prefix .rinumera la finestra: utile quando restano dei buchi

I nomi non sono un vezzo

Con tre finestre te la cavi con i numeri. Con otto no: 0:bash 1:bash 2:bash non dice niente, e dopo mezz'ora stai girando in tondo con prefix n per ritrovare il server. Dai un nome a ogni finestra appena la crei, con prefix ,: dieci caratteri, una parola.

Il nome scompare da solo? Per impostazione predefinita tmux rinomina le finestre con il programma in esecuzione, cancellando il tuo nome. Per tenerlo: set -g allow-rename off nel file di configurazione, o set -g automatic-rename off a seconda della versione — la lezione 6 spiega dove metterli.
Trucco

Rimappare il prefix, e le tre cose da fare subito dopo

Ctrl+b è scomodo: la b sta lontana dal mignolo e in Vim Ctrl+b significa «pagina indietro». La scelta quasi universale è Ctrl+a, che è anche il prefix di Screen — la a è sotto il mignolo sinistro.

~/.tmux.conf — le prime righe del file
# il nuovo prefix
unbind C-b
set -g prefix C-a
bind C-a send-prefix        # prefix due volte = un Ctrl-a vero

# ricarica la configurazione senza riavviare nulla
bind r source-file ~/.tmux.conf \; display "configurazione ricaricata"

# finestre numerate da 1: la tastiera parte da 1, non da 0
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on

Poi tmux kill-server (o prefix : e source-file ~/.tmux.conf) e il nuovo prefix è attivo.

Perché quella terza riga è importante

bind C-a send-prefix risolve il problema che il rimappaggio crea: Ctrl+a nella shell porta il cursore a inizio riga, ed è un tasto che si usa di continuo. Con quella riga, premuto due volte il prefix viene inoltrato al programma sotto. Vale anche per tmux dentro tmux, di cui parla la lezione 9.

Un avvertimento su renumber-windows. Rinumera tutto quando chiudi una finestra in mezzo, il che tiene l'elenco compatto ma sposta le scorciatoie numeriche sotto le dita: la finestra 4 può diventare la 3 mentre non guardi. Se preferisci che i numeri restino stabili, lascialo off e usa prefix w per orientarti.