Tmux

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Tmux and the translation is 61% complete.
Outdated translations are marked like this.
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.

Users familiar with GNU Screen may find tmux as a suitable alternative.

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.

Configuration Files

  • /etc/tmux.conf — the system-wide configuration file.
  • $XDG_CONFIG_HOME/.config/tmux/tmux.conf — The user specific tmux configuration file.
  • ~/.tmux.conf — The legacy single-user tmux configuration file location.


Esempio wiki

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
  1. Match session numbers to number row

set -g base-index 1

  1. Set TERM, the default is "screen", "screen-256color" can be tried if "tmux-256color" doesn't work.

set -g default-terminal "tmux-256color"

  1. Set prefix to 'a' with ctl-a > a to send ctrl-a to the terminal
  2. set -g prefix C-a
  3. bind-key a send-prefix
  4. Set prefix2 to the default 'b'
  5. set -g prefix2 C-b
  6. Enable mouse

set -g mouse on

  1. Disable drag action in normal mode if your pointer causes problems with

unbind -n MouseDrag1Pane

  1. Also disable in copy mode
  2. unbind -Tcopy-mode MouseDrag1Pane
  1. Set the bar and inactive borders to blue, highlighting current in green.
  2. set-option -g status-style fg=black,bg=blue
  3. set-window-option -g window-status-current-style bg=green
  4. set-option -g pane-border-style fg=blue
  5. set-option -g pane-active-border-style fg=green

}}

To reload the configuration file from a terminal run:

user $tmux source-file ~/.tmux.conf

Alternatively, modifications to the file can be loaded from within tmux via:

:source-file ~/.tmux.conf

Automatic connection

Running tmux with exec and the -ADX options will cause tmux to replace the current shell and create a session, or if one exists connect to it and both detach and exit the other client. This provides a very consistent way of working with remote sessions, and it can be run automatically:

Bash

user $test -n "$PS1" && test -z "$TMUX" -a -n "$SSH_TTY" && exec tmux new -ADX

Fish

user $status is-interactive ; and test -z "$TMUX" -a -n "$SSH_TTY" ; and exec tmux new -ADX

Plugins

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

tpm

tpm is a tmux plugin manager. See the tpm sub-article for more details on the installation process.

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

Tutorial Videos

Riferimenti