This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.

Please visit our production wiki at https://wiki.gentoo.org

Tmux

From Gentoo Wiki (test)
Jump to:navigation Jump to:search
This page is a translated version of the page Tmux and the translation is 100% complete.

Warning: Display title "tmux/it" overrides earlier display title "Tmux".

Resources

tmux (terminal multiplexer) è un programma che abilita diversi terminali (o finestre), su ognuno dei quali giri un programma separato, ad essere creatim acceduti e controllati da un singolo schermo o finestra di terminale. tmux può essere staccato (detached) da uno schermo e continuare a girare in background, ed essere ricollegato nuovamente in seguito.[1] Gli utenti familiari con GNU Screen possono trovare in tmux una valida alternativa.

Installazione

Flags USE

USE flags for app-misc/tmux Terminal multiplexer

debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
selinux  !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
systemd Enable use of systemd-specific libraries and features like socket activation or session tracking
utempter Include libutempter support
vim-syntax Pulls in related vim syntax scripts

Emerge

Installare app-misc/tmux:

root #emerge --ask app-misc/tmux

Configurazione

L'installazione standard di tmux non installerà i file di configurazione globale (/etc/tmux.conf) o specifici per ciascun utente (~/.tmux.conf). Sono disponibili degli esempi nella directory /usr/share/doc/tmux-2.0/examples e possono essere copiati nella location globale o utente ed editati a piacere utilizzando un text editor.

Esempi dal package

Per vedere una lista dei file di configurazione, lanciare il seguente comando:

user $ls /usr/share/doc/tmux-2.0/examples
h-boetes.conf.bz2  n-marriott.conf.bz2  screen-keys.conf.bz2  t-williams.conf.bz2  vim-keys.conf.bz2

Usare poi cp per copiare uno dei file alla location globale (che impatterà tutti gli utenti) o nella home dell'utente.

Esempio wiki

Il seguente è un esempio del file ~/.tmux.conf:

FILE ~/.tmux.conf
set -g default-terminal "screen-256color"   # Usa 256 colori
set -g status-utf8 on                       # Abilita utf-8
set -g history-limit 100000                 # Numero di righe nel buffer di scroll
 
# L'indice iniziale delle finestre parte da 1 invece che da 0
set -g base-index 1
 
# Setta la combinazione di prefix ed alcuni key bindings per corrispondere a GNU Screen
set -g prefix C-a
bind-key C-a last-window
 
# Key bindings per pannelli orizzontali e verticali
unbind %
bind | split-window -h
bind - split-window -v
 
# Abilita i titoli delle finestre
#set -g set-titles on
 
# Stringa per titolo della finestra (usa variabili della barra di stato)
set -g set-titles-string '#T'
 
# Barra di stato con carico ed ora
set -g status-bg '#4e4e4e'
set -g status-fg '#ffffff'
set -g status-left ' '
set -g status-right '#[bg=#bbbbbb]#[fg=#000000]#(cut -d " " -f -3 /proc/loadavg) #[bg=#4e4e4e]#[fg=#ffffff]#(
date +" %H:%M ")'
set -g window-status-format '#I #W'
set -g window-status-current-format ' #I #W '
setw -g window-status-current-bg '#55ff55'
setw -g window-status-current-fg '#000000'
 
# Colore del bordo pannello
set -g pane-active-border-fg '#bbbbbb'
set -g pane-border-fg '#555555'
 
# Scorciatoia per ricaricare la configurazione
bind r source-file ~/.tmux.conf

Plugins

Alcuni plugins sono disponibili per tmux. Vedere la sezione seguente per le opzioni disponibili.

tmux-mem-cpu-load

tmux-mem-cpu-load è un piccolo programma disegnato per monitorare l'attività di sistema nella barra di stato di tmux. Vedere l'articolo tmux-mem-cpu-load per maggiori dettagli riguardo il processo di installazione.

Tmux Resurrect

tmux-resurrect rende l'ambiente di tmux persistente tra i riavvii di sistema. Vedere l'articolo resurrect per maggiori dettagli riguardo il processo di installazione.

Utilizzo

Assegnazione dei tasti (key bindings)

tmux può essere controllato da un client collegato utilizzando delle combinazioni di tasti, composte da una "pressione della combinazione di prefisso" (di default Ctrl+b) seguita da una combinazione di "comando".

Dopo aver premuto Ctrl+B è possibile utilizzare le seguenti combinazioni:

Generale

  • ? = Lista delle combinazioni/tasti assegnati.
  • d = Stacca il client corrente.
  • : = Entra nel prompt dei comandi di tmux.

Creare ed amministrare finestre

  • c = Crea una nuova finestra
  • n = Passa alla finestra seguente.
  • p = Passa alla finestra precedente.
  • l = Passa all'ultima finestra selezionata.
  • 0-9 = Sceglie una finestra da 0 a 9.
  • ' = Presenta un indice di finestre da scegliere. Inserire un numero o un titolo per passare a quella finestra.
  • , = Rinomina la finestra corrente.
  • w = Sceglie la finestra corrente in modo interattivo.
  • :, poi digitare list-windows enter = Mostra la lista delle finestre.

Creare ed amministrare pannelli

  • " = Divide il pannello corrente in due, alto e basso.
  • % = Divide il pannello corrente in due, sinistra e destra.
  • o = Passa al pannello seguente nella finestra corrente.
  • ; = Passa al pannello precedentemente attivo.
  • { = Scambia il pannello corrente con il precedente.
  • } = Scambia il pannello corrente con il successivo.
  • Ctrl+o = Ruota i pannelli nella finestra corrente in avanti.
  • da Alt+1 a Alt+5 = Dispone i pannelli in uno dei cinque layout predefiniti: orizzontale, verticale, principale + orizzontale, principale + verticale o giustificato
  • x = Distrugge il pannello corrente.
  • ! = Getta il pannello corrente fuori dalla finestra.

Copia, incolla ed operazioni di scroll

Le chiavi disponibili dipendono se è selezionata la modalità emasc (default) o vi. L'opzione mode-keys può essere settata nel file .tmux.conf per la modalità vi.

  • [ = Entra in modalità copia per copiare il testo o vedere lo storico.
  • ] = Incolla il buffer di testo più recente.
  • # = Lista tutti i buffer.
  • - = Cancella il buffer di testo più recente copiato.

Controllo di sessione

Iniziare una sessione

Una volta avviato tmux crea un socket per la sessione in /tmp/S-<UID>/<Nome della sessione>

tmux può essere avviato con il seguente comando:

user $tmux

Oppure, per dare alla sessione un nome all'avvio, lanciare:

user $tmux new-session -s portage

Elencare le sessioni

Fare una lista delle sessioni di tmux per vedere le informazioni su quelle attualmente in corso:

user $tmux ls
0: 1 windows (created Thu Apr  9 09:09:03 2015) [180x65] (attached)

Quando viene fatto l'elenco delle sessioni il nome di ciascuna dovrebbe apparire come primo oggetto nella riga delle informazioni relative. E'possibile vedere dall'output seguente che la sessione è stata creata senza un nome, e che di conseguenza è stata referenziata come 0.

Un altro modo di fare la lista le sessioni è passare l'argomento list-sessions al comando.

user $tmux list-sessions
0: 1 windows (created Thu Apr  9 09:09:03 2015) [180x65] (attached)

L'output mostrato è analogo a quello del comando precedente.

Rinominare una sessione

Utilizzare semplicemente tmux per iniziare una sessione non le darà un nome comprensibile o "parlante".

Se il nome di default non fosse abbastanza descrittivo (e 0 non tende a descrivere molto), è possibile rinominare la sessione. Supponete che Larry the cow abbia avviato tmux senza un nome di sessione specifico. Inizia poi a lavorare sulla compilazione di una nuova versione di Portage, e vorrebbe cambiare il nome di sessione in modo che rifletta il suo compito attuale. Per cambiare il nome di sessione assumerà prima il controllo di tmux premendo la combinazione di tasti magica: Ctrl+b, poi : che lo passerà alla barra di controllo di tmux. Per default, la riga dovrebbe diventare gialla. Una volta atterrato qui lancerà:

:rename-session -t 0 portage

Dove 0 è il nome di sessione attuale (default) e portage è il nuovo nome desiderato per la sessione. Per rinominare una sessione disconnessa da tmux digitare:

user $tmux rename-session -t 0 portage

Riprendere una sessione

Dopo che la sessione è stata staccata, tutti i terminali rimarranno attivi assieme ai comandi non ancora terminati. Per riprendere una sessione usare attach -t <nome_sessione>.

user $tmux a -t portage

In alternativa, usare il comando con l'argomento per attaccarsi ad una sessione esistente:

user $tmux attach -t portage

Operazioni di tipo demone

Per lanciare un comando in una sessione tmux senza attaccarsi alla sessione (come un demone) usare new-session -d seguita dal comando da lanciare tra virgolette:

user $tmux new-session -d 'emerge -uDNvp @world'

Ulteriori informazioni

  • Screen - Un'alternativa a tmux.

Risorse esterne

Riferimenti