home skills contatti blog
linuxtutorial

Padroneggiare Tmux - Pannelli [3/5]

Introduzione

Abbiamo imparato a conoscere Tmux, abbiamo la nostra bella sessione appena lanciata, abbiamo appena lanciato top all'interno di una finestra e ora vogliamo sempre tenere d'occhio quando qualcosa di imprevisto consuma tutta la CPU della nostra macchina.

Sì, possiamo fare in diversi modi, possiamo aprire 2 finestre come abbiamo già visto, possiamo aprire un'altra applicazione terminale ad affiancarla alla prima, oppure possiamo fare tutto ciò all'interno di una finestra: benvenuti nel magico mondo dei pannelli.

Pannelli

A scopo didattico, creiamo una nuova sessione e lanciamo top al suo interno. Nel frattempo che il programma tiene sotto controllo tutto ciò che avviene in macchina, ci ricordiamo alcune importanti indicazioni che dobbiamo assolutamente scrivere in un file.

Creazione

Non vogliamo perdere la visione su top, quindi dividiamo l'attuale finestra a metà, ognuna delle quali sarà un pannello.

In quale direzione vogliamo dividere la nostra finestra? In orizzontale o in verticale? E' bene fare da subito questa distinzione perché Tmux parla di vertical-split quando la linea di divisione è verticale (e quindi di fatto i pannelli sono uno accanto all'altro), mentre horizontal-split quando la linea divisoria è in orizzontale (ponendo i pannelli uno sotto l'altro).

Quindi come facciamo?

  • C-b % crea uno split verticale, posizionando i pannelli uno accanto all'altro;
  • C-b " crea uno split orizzontale, posizionando i pannelli uno sopra l'altro.

Notate come all'interno della stessa finestra ho a sinistra top, sempre in esecuzione, mentre a destra ho un nuovo pannello, con un terminale pronto a farmi lavorare. Di default, il focus si sposta automaticamente sul nuovo pannello creato.

Non ci basta? Suddividiamo, questa volta orizzontalmente, il pannello appena creato

Come avrete capito posso suddividere come e quante volte voglio ciascun pannello, creando una struttura più o meno complessa a seconda delle mie esigenze.

Tutto molto bello, ma come mi muovo tra i vari pannelli? Tmux ci propone principalmente 3 strade:

Se vogliamo iterare pannello per pannello in ordine, C-b o ci aiuta, spostando il focus in ordine dal primo pannello all'ultimo, mentre se volessimo spostarci in maniera più precisa, indicandone la direzione, Tmux ci ricorda che abbiamo anche delle frecce direzionali sulla tastiera, quindi C-b <freccia> ci sposterà il focus verso il pannello in direzione della freccia.

Un altro modo molto interattivo è l'utilizzo della combinazione C-b q. Premendo questa combinazione di tasti, comparirà un numero grande al centro di ogni pannello, mostrandone l'indice. Fintanto che questo numero è visibile, premendolo da tastiera sposterà il focus su quel pannello.

Ridimensionamento

Chiaramente non sempre la suddivisione a metà della nostra finestra ci può andare bene; è possibile modificare la larghezza o l'altezza di un pannello usando la combinazione C-b-<freccia>, avendo cura di tenere premuto il tasto CTRL mentre premiamo la freccia nella direzione verso cui vogliamo espandere / restringere il pannello.

E' interessante notare come, se premiamo ripetutamente (di default sotto i 500ms) la freccia direzionale tenendo premuto CTRL, non è necessario ripremere ad ogni volta la combinazione C-b.

Chiusura

Così come per le finestre (e le sessioni), anche i pannelli possono essere chiusi terminando tutti i programmi in essi contenuti e dando un exit. In alternativa, in maniera analoga alle finestre, C-b x chiude un pannello forzandone la chiusura di tutti i programmi in esso contenuti.

Extra

Tmux ci mette a disposizione un paio di funzionalità in più nei pannelli che possono tornarci sempre utili.

Abbiamo diviso una finestra in un pannello, questo pannello lo abbiamo a sua volta diviso in 2 pannelli e per confermare di aver capito come funziona, abbiamo ulteriormente diviso questo in 2. La dimensione del programma terminale non è così generosa, ed ora ci troviamo con un pannello che può contenere 2 righe di testo, il che ci va bene ma ora abbiamo la necessità di aprire un file per pochi secondi per leggerne il contenuto.

Non vogliamo fare questa operazione in una nuova finestra perché è un qualcosa di temporaneo, ma al contempo non riusciamo a leggere tutto il file in così poco spazio. C-b z zoomma un pannello rendendolo grande temporaneamente come una finestra. Questo risolve il nostro problema! Letto tutto il file, possiamo riportare il pannello alla sua dimensione originale semplicemente ripetendo la combinazione di tasti.

Ci rendiamo conto invece che un pannello ci è troppo piccolo per fare ciò che vogliamo fare, quindi è ora di elevare il suo grado nobiliare e renderlo una finestra a sé. C-b ! trasforma un pannello in una finestra.


Abbiamo imparato ad usare l'ultimo grande componente di Tmux, siamo ora capaci di avviare una o più sessioni, aprire tante finestre quanti sono gli ambienti che vogliamo creare, e personalizzare ciascuno di essi dividendoli in più pannelli. Congratulazioni!

Ma Tmux offre tanto altro: nella prossima puntata andiamo ad imparare alcuni comandi a mio avviso molto utili per personalizzare ancora di più la nostra esperienza.

Comandi / scorciatoie viste

  • C-b %: divide verticalmente la finestra, ponendo i pannelli uno accanto all'altro;
  • C-b ": divide orizzontalmente la finestra, ponendo i pannelli uno sotto l'altro;
  • C-b o: sposta il focus al pannello successivo;
  • C-b q: mostra l'indice del pannello in sovraimpressione;
  • C-b <freccia>: sposta il focus al pannello in direzione della freccia direzionale;
  • C-b-<freccia>: ridimensiona il pannello in direzione della freccia direzionale;
  • C-b x: chiude il pannello corrente;
  • C-b z: ingrandisce il pannello corrente;
  • C-b !: trasforma il pannello corrente in una finestra;
#linux#tutorial