2012-01-12 14 views
10

Mi chiedo se riesco a configurare un riquadro in tmux in tutte le finestre.Mostra riquadro in tutte le finestre in tmux

Qualche suggerimento su come farlo?

+0

C'era un filo relative su [mailing list] (https://lists.sourceforge.net/lists/listinfo/tmux-users) qualche tempo fa: [ “No, non può, i riquadri devono essere in una sola finestra. "] (http://thread.gmane.org/gmane.comp.terminal-emulators.tmux.user/2490/focus=2491). –

risposta

3

no non è possibile configurare un riquadro da collegare a tutte le finestre in senso tradizionale ma è possibile utilizzare la funzionalità link-window di tmux per ottenere gran parte di questo effetto. avvolgilo in uno script o in un file di sessione tmux per collegarlo a più finestre contemporaneamente.

** modificare

si vuole anche utilizzare la funzione join-pane.

3

Ovviamente ciò è possibile, ma è necessario eseguire tmux all'interno di un riquadro tmux.

+-------------+-------------+ 
| tmux pane 1 | tmux pane 2 | 
|    |    | 
|    |+-----------+| 
|    || new tmux || 
|    || session || 
|    |+-----------+| 
+-------------+-------------+ 

Come fare:

  1. iniziare nuova sessione tmux
  2. riquadro diviso
  3. unset TMUX nel riquadro 2 # questo permette tmux in tmux
  4. iniziare nuova sessione tmux nel riquadro
  5. ripetere 1-3
  6. eseguire.210 # questo è apre la sessione condivisa

Questo non funziona come facilmente se si esegue wrapper per tmux, come vengono con oh-my-zsh o tmuxinator. E probabilmente ci sono molte ragioni per cui non dovresti farlo, semplicemente non ne conosco nessuno.

+0

Questa è la risposta più adatta alle mie esigenze. Tuttavia, ha uno svantaggio: se uccidi il server che ha la "sessione tmux allegata in tmux", uccide anche le sessioni allegate :( – Werner

+0

@Werner Uccidendo il server uccide tutte le sessioni di tmux, collegate e staccate –

+0

I non stava uccidendo i server tmux, piuttosto le sessioni con i pannelli allegati come hai indicato.Le sessioni dei riquadri allegate all'interno della sessione in fase di uccisione avrebbero ucciso le loro sessioni. – Werner

2

Ecco un modo per eseguire questa operazione, ma i riquadri con mirroring saranno di sola lettura. C'è il comando pipe-pane che invia l'output del riquadro a un comando. È possibile fare in modo che il comando scriva l'output in un file e quindi dai riquadri da cui si desidera eseguire il mirroring, è possibile eseguire il file tail -f. Esempio:

# In source pane 
tmux pipe-pane 'cat > /tmp/asdf' 

# In the target pane (or another tmux session or terminal window) 
tail -f /tmp/asdf 
+0

Amico, questa è di gran lunga la soluzione migliore che mi sia sembrata. Aggiungendo 'clear' prima di tails, ad esempio' clear && tail -f/tmp/asdf', ha migliorato la risposta. – Werner

Problemi correlati