Come avviare tmux con più riquadri aperti contemporaneamente?


23

Supponiamo che io inizi tmuxed esegua immediatamente Ctrl+ b+ %e Ctrl+ b+ ".

Questo mi dà un riquadro alto sul lato sinistro dello schermo; il lato destro dello schermo ha un riquadro superiore e inferiore.

Come posso configurare tmux per iniziare in questa configurazione senza dover digitare questi comandi?


Se il tuo requisito è quello di aprire alcuni terminali contemporaneamente in un solo clic, puoi farlo con terminator . Installalo dal centro software.
SAGAR Nair,

Grazie, è un buon comando da sapere! Per il mio caso particolare, questo è per una sessione ssh su un computer remoto.
Mark Harrison,

Risposte:



15

È possibile utilizzare il seguente script di shell per la configurazione:

#!/bin/sh 
tmux new-session -s "mySession" -d
tmux split-window -h
tmux split-window -v
tmux -2 attach-session -d 

Ciò fornirà la configurazione richiesta dello schermo con i seguenti comandi, come hai detto. tmux -> Ctrl+ b+ %-> Ctrl+ b+"

Per riferimento, utilizzare la pagina man di tmux .


4

Può essere facile abilitare e disabilitare le tmuxsessioni automatiche al login usando l' applicazione Byobu . Puoi utilizzare Byobu come interfaccia per tmuxrispondere a questa esigenza, rendendo semplice fare ciò che stai chiedendo. In un terminale, eseguire i seguenti comandi:

sudo apt-get install byobu
sudo byobu-enable
sudo -i

Quando l'utente root accede tramite la console, SSH o con sudo -i, Byobu si collegherà a una tmuxsessione esistente o ne creerà una nuova se non è già in esecuzione. Usa sudo -iinvece di sudo -s. L' -sopzione avvia solo una shell, non una shell di accesso. Dovresti usare sudo -iper emulare un accesso completo, che si carica anche roots ~/.profile, ed è qui che byobu si installerà da solo quando eseguirai

byobu-enable.

Puoi configurare sessioni diverse dalle tue .tmux.confcome di seguito:

# initialize sessions
bind S source-file ~/.tmux/session1 
bind s source-file ~/.tmux/session2

E quindi puoi formattare le sessioni come richiesto:

#session1
new  -s SessionName -n WindowName Command
neww -n foo/bar foo
splitw -v -p 50 -t 0 bar
selectw -t 1 
selectp -t 0

Questo aprirebbe 2 finestre, la seconda delle quali sarebbe chiamata foo / bar e verrebbe divisa a metà in verticale (50%) con foo che corre sopra la barra. Il focus sarebbe nella finestra 2 (foo / bar), riquadro superiore (foo).

Byobu semplifica automaticamente la configurazione e l'avvio di tmux.


1
perché bind S vs bind s? (prima grande S, poi piccola S?)
impugna il

3

Il plug-in tmux-resurrect consentirà di impostare la persistenza della sessione e fornirà funzionalità aggiuntive per il salvataggio e il ripristino delle impostazioni tra le sessioni di tmux.

Sono disponibili molte funzionalità aggiuntive. Dalla pagina Web del plug-in:

" Questo plugin fa di tutto per salvare e ripristinare tutti i dettagli dal tuo ambiente tmux. Ecco cosa è stato curato:

  • tutte le sessioni, finestre, riquadri e il loro ordine
  • directory di lavoro corrente per ciascun riquadro
  • layout di riquadro esatti all'interno di Windows (anche quando ingrandito)
  • sessione attiva e alternativa
  • finestra attiva e alternativa per ogni sessione
  • riquadro attivo di windows con focus per ogni finestra
  • "sessioni raggruppate" (funzione utile quando si utilizza tmux con più monitor) programmi in esecuzione all'interno di un riquadro! "

Installazione:

  1. Nel terminale, vai alla directory del tuo plugin tmux (nel mio caso, ~/dotfiles/tmux/plugins).
  2. Clonare il repository con il comando: git clone https://github.com/tmux-plugins/tmux-resurrect.

  3. Modifica il tuo .tmux.conffile e aggiungi la linea set -g @plugin 'tmux-plugins/tmux-resurrect'.

  4. Ricarica l'ambiente tmux con il comando: tmux source-file ~/dotfiles/tmux/tmux.conf.
  5. Inserisci il layout che desideri. In questo caso Ctrl- b %e Ctrl- b ".
  6. Salva la tua sessione tmux inserendo il comando Ctrl- b+ Ctrl- s.
  7. Al prossimo avvio della sessione tmux, immettere il comando Ctrl- b+ Ctrl- rper ripristinare la sessione tmux.

Come accennato in precedenza, oltre a impostare il layout del riquadro della sessione tmux, questo plugin può anche impostare directory di lavoro persistenti e far riavviare le applicazioni in esecuzione con ogni sessione.


2

Mi sono scritto un piccolo script bash :

# filename tmuxv in /home/<username>/Bash/tmuxv/

#!/bin/bash
tmux new-session \; split-window -v \; rename-window ${1} \; attach

e metto un alias nel mio ~ / .bash_aliases

alias tmuxv="/home/<username>/Bash/tmuxv/tmuxv"

Quindi ora posso semplicemente digitare tmuxv PYTHONe ho una sessione tmux divisa verticalmente con una finestra chiamata PYTHON, il che è carino perché il nome della finestra si riflette nel mio nome della scheda gnome-terminal.


1
Buona risposta, ma si prega di rimuovere la domanda alla fine. Prova a porlo come una nuova domanda, che assicurerà che più persone lo vedano.
Tom Brossman,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.