Tmux: come posso collegare una finestra come finestra divisa?


33

come posso prendere una finestra da una sessione tmux completamente diversa e collegarla come una divisione orizzontale / verticale alla finestra corrente?

Risposte:


45

Sembra che tu stia cercando il riquadro di join. Tecnicamente per la seconda parte della tua domanda vuoi unire un riquadro alla finestra corrente, non l'intera finestra dell'altra sessione poiché potrebbe includere più riquadri.

Ecco un esempio Supponiamo che tu sia nella sessione 0, finestra 4 e nella sessione 2 che desideri il riquadro 1. della finestra 3 Nel prompt di tmux ( ctrl+b :per impostazione predefinita)

join-pane -s 2:3.1

Questo sposterà il riquadro 1 dalla finestra 3, sessione 2 (-s è la finestra di origine e porta il formato session: window.pane) alla sessione corrente (sessione 0).

Di seguito sono riportati i documenti completi per il riquadro di join, che è possibile ottenere dalla pagina man di tmux. La parte più confusa per me che ho letto i documenti è stata quella di capire il formato previsto per il riquadro src specificando i numeri di sessione, finestra e riquadro ( session:window.panecome nell'esempio sopra). È inoltre possibile assegnare un nome alle sessioni e alle finestre e utilizzare tali nomi anziché i numeri di indice.

 join-pane [-dhv] [-l size | -p percentage] [-s src-pane] [-t dst-pane]
   (alias: joinp)
   Like split-window, but instead of splitting dst-pane and 
   creating a new pane, split it and move src-pane into the 
   space.  This can be used to reverse break-pane.

9
Posso copiare un riquadro invece di spostarlo?
pielgrzym,

@pielgrzym Mi piacerebbe sapere anche la risposta. Per favore pubblicalo qui se lo trovi.
Bruno Bronosky,

Penso che OP stesse cercando qualcosa di più simile al riquadro dei collegamenti, che purtroppo non esiste. Apparentemente il comportamento richiesto può essere imitato usando il socket tmux nidificato, come spiegato qui: superuser.com/a/323658
partecipare il

16

Se si sta tentando di unire i riquadri all'interno della stessa sessione, si desidera istintivamente omettere la "sessione:" dal comando. Questo fallirà. Sembra che -s e -t passino a join-pane accettino l'argomento sotto forma di [session]: window [.pane] invece di [session:] window [.pane]

Vale a dire, la sessione è facoltativa e il: è obbligatorio. Questo è sciocco. Sarebbe l'equivalente dei browser che richiedono http://google.com:/ come versione scorciatoia di http://google.com:80/ e che danno un errore a http://google.com/ o_O

Dal momento che ctrl-b! suddivide il riquadro corrente in una finestra separata (che è l'opposto di ciò che vogliamo fare) e ctrl-b @ (che è proprio accanto!) per impostazione predefinita non è associato (significa che non stai sovrascrivendo nulla) Suggerisco di creare questo collegamento ...

bind-key @ command-prompt -p "create pane from:"  "join-pane -s ':%%'"

Bello vincolante lì.
Nishant,
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.