Sessioni che sopravvivono al riavvio
tmux tiene in piedi il lavoro finché la macchina è accesa. L'ultimo passo è farlo sopravvivere anche a un riavvio — e mettere insieme tutto il resto: plugin, finestre a comparsa, l'editor che parla con i pannelli.
I plugin, con e senza gestore
Un plugin di tmux è quasi sempre uno script di shell che aggiunge comandi e tasti.
Si può installare a mano — git clone e una riga
run-shell nel file di configurazione — ma con più di due plugin
conviene tpm, il gestore ufficioso.
$ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpmset -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' set -g @plugin 'tmux-plugins/tmux-resurrect' set -g @plugin 'tmux-plugins/tmux-continuum' set -g @plugin 'christoomey/vim-tmux-navigator' # salva anche i programmi in esecuzione, non solo i pannelli set -g @resurrect-capture-pane-contents 'on' set -g @resurrect-strategy-vim 'session' set -g @continuum-restore 'on' set -g @continuum-save-interval '15' # QUESTA RIGA VA PER ULTIMA, sempre run '~/.tmux/plugins/tpm/tpm'
| Tasti | Effetto |
|---|---|
| prefix I | installa i plugin elencati (I maiuscola) |
| prefix U | aggiorna i plugin |
| prefix Alt+u | rimuove quelli non più elencati |
| prefix Ctrl+s | resurrect: salva lo stato adesso |
| prefix Ctrl+r | resurrect: ripristina l'ultimo stato salvato |
resurrect registra sessioni, finestre, pannelli, disposizioni e cartelle
in un file sotto ~/.local/share/tmux/resurrect/;
continuum lo chiama da solo ogni quindici minuti e ripristina all'avvio
del server. Insieme fanno sì che un riavvio del computer costi dieci secondi
invece di dieci minuti di ricostruzione.
@resurrect-processes, elencando quelli sicuri:
set -g @resurrect-processes 'vim ssh "tail -f"'. Non metterci comandi
che scrivono o installano: un ripristino li rieseguirebbe senza chiedere.
Due integrazioni che cambiano la giornata
Muoversi tra Vim e tmux con gli stessi tasti
Se usi Vim dentro tmux hai due sistemi di navigazione sovrapposti:
Ctrl+w h per le finestre dell'editor,
prefix h per i pannelli. Il plugin
vim-tmux-navigator li unifica: Ctrl+h j k l
attraversa entrambi, e il confine diventa invisibile.
" nel .vimrc Plug 'christoomey/vim-tmux-navigator' # nel .tmux.conf set -g @plugin 'christoomey/vim-tmux-navigator'
Funziona perché tmux, prima di spostare il pannello, controlla se il programma in
esecuzione è Vim: in quel caso inoltra il tasto all'editor. Lo stesso
Ctrl-h fa due cose diverse a seconda di dove sei, ed è esattamente
quello che vuoi.
Finestre a comparsa
Dalla versione 3.2 tmux sa aprire un riquadro fluttuante sopra la finestra, che si chiude quando il comando finisce. È il posto giusto per le cose brevi che non meritano un pannello.
# una shell al volo, nella cartella corrente bind g display-popup -d "#{pane_current_path}" -w 80% -h 80% -E "zsh" # lazygit, che è il caso d'uso per cui quasi tutti scoprono i popup bind G display-popup -d "#{pane_current_path}" -w 90% -h 90% -E "lazygit" # un selettore di sessioni con fzf bind C-j display-popup -E "\ tmux list-sessions -F '#{?session_attached,,#S}' \ | sed '/^$/d' | fzf --reverse --header 'sessione' \ | xargs tmux switch-client -t"
-E è quella che serve: chiude il popup
appena il comando esce. Senza, resta aperto con una shell morta dentro e devi
chiuderlo a mano con q. Il -d imposta la cartella di
partenza, esattamente come per le divisioni.
Il minimo indispensabile che si usa ogni giorno
Dieci lezioni sono tante, ma l'uso quotidiano di tmux sta in una quindicina di tasti. Questa è la lista che vale la pena tenere accanto alla tastiera per la prima settimana — con il prefix rimappato su Ctrl+a e le divisioni su | e -.
| Tasti | Effetto |
|---|---|
| prefix d | stacca la sessione — quella che rende tmux tmux |
| prefix c | nuova finestra |
| prefix , | dalle un nome, subito |
| prefix 1…9 | vai a quella finestra |
| prefix | · - | dividi in due il pannello |
| prefix h j k l | spostati fra i pannelli |
| prefix z | zoom: il più usato di tutti |
| prefix [ | modo copia, per scorrere e cercare |
| prefix s | cambia sessione |
| prefix ? | e se non ricordi, è tutto lì dentro |
Come si continua da qui
| Dove guardare | Cosa ci trovi |
|---|---|
| man tmux | la documentazione completa, ben scritta e sorprendentemente leggibile |
| prefix ? | i tasti della tua configurazione: sempre aggiornati |
| tmux list-commands | ogni comando con la sua sintassi e le sue abbreviazioni |
| tmux display -p '#{...}' | prova una variabile di formato e vedi cosa contiene |
| github.com/tmux/tmux/wiki | il wiki ufficiale, con le note di rilascio versione per versione |
Nel man, la sezione da leggere per prima è COMMANDS: spiega
la sintassi degli indirizzi della lezione 7, che è la chiave per capire tutto il
resto. La seconda è FORMATS, se vuoi spingere sulla status bar.