Avere tmux load di default all'avvio di un terminale zsh


23

Il mio flusso di lavoro attuale è:

  1. CTRL+ SHIFT+ Tper avviare una nuova finestra del terminale. Questo avvia un nuovo terminale zsh.
  2. Digitare tmuxper avviare tmux.

Come posso avere tmux load di default con una nuova finestra terminale?

Risposte:


36

Esistono almeno due modi:

  1. Scrivi qualcosa di simile

    if [ "$TMUX" = "" ]; then tmux; fi

    all'inizio di ~/.zshrc. Nota il test condizionale su un possibile loop quando viene tmuxgenerato zsh.

  2. Modifica il comando di avvio del terminale in modo simile

    xterm -e tmux

Preferisco il secondo modo, perché a volte ho bisogno di avviare un terminale senza tmux(ad esempio quando devo riconnettermi a una sessione esistente).


2
O hanno scorciatoie diverse xterm -e tmuxe semplici xterm.
Nikolai N Fetissov,

Sì, in realtà lo intendevo con "Preferisco il secondo modo" =)
corsa il

1
L'esecuzione tmuxalla fine di .zshrcprovoca un ciclo infinito di zsh che inizia tmux che inizia zsh che inizia tmux ...
Thor

Come si potrebbe fare per "modificare il comando di avvio del terminale"?
eoinoc,

@eoinoc dipende dal tuo ambiente. Ad esempio, sto usando wm fantastico, quindi ho solo bisogno di modificare la stringa nel mio file di configurazione. In kde devi modificare i tasti di scelta rapida. E così via.
precipita il

6

Fai attenzione alla echo tmux >> ~/.zshrcsoluzione, però, ricordo che il semplice lancio bashdi un .cshrcfile in un file mi ha causato problemi su SSH.

IIRC il problema si è verificato con shell non interattive, quindi dovresti testarlo.

case $- in *i*)
  if [ -z "$TMUX" ]; then exec tmux; fi;;
esac

Ti manca uno spazio tra "e ].
n.

5

aggiungilo al tuo .zshrc

if [ -z "$TMUX" ]
then
    tmux attach -t TMUX || tmux new -s TMUX
fi

quindi tmux si connetterà automaticamente a una sessione chiamata TMUX quando avvierai il tuo terminale.


1

In realtà esiste un plug-in predefinito tmuxper oh_my_zsh.

Aggiungilo al tuo elenco di plug-in, quindi imposta ZSH_TMUX_AUTOSTART=trueil.zshrc

Per ulteriori riferimenti, vai qui


0

Aggiungi "tmux" al tuo file .zshrc, che viene eseguito ogni volta che avvii zsh. Il modo rapido:

echo tmux >> ~/.zshrc

Il fatto è che inizia una nuova sessione in ogni nuova istanza e si gonfia con sessioni a cui non sei mai uscito (anche tmux se ne lamenterà). Non è una buona soluzione.
Eksapsy

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.