Sposta un riquadro tmux in un'altra sessione


43

A parte questo , è possibile spostare un comando in esecuzione in un riquadro in un'altra sessione di tmux?

Risposte:


68

Sì, è abbastanza facile, usa il move-panecomando tmux. Per ulteriori informazioni, esegui

man tmux | less -I '+/mOVE-pane'

La parte difficile è sapere come tmux fa riferimento a sessioni, finestre e riquadri nei comandi per manipolare riquadri ecc.

Primo passo

Spostati nel riquadro che desideri spostare nell'altra sessione

Passo due

Ottieni il nome della sessione di destinazione eseguendo <prefix>s.

Sul mio sistema che produce:

 (0) + 0: 8 windows (attached)  
 (1) + 1: 1 windows 
       ^
       |
    This is the session name. It could be different 
    on your system and it could be a word (not just a number).

Passaggio 3: eseguire il comando

<prefix>:move-pane -t <session_name>:<window number>
                      ^^^^^^^^^^^^^^ the name from above goes in here

Quindi sul mio sistema mi sono spostato nel riquadro con il processo in esecuzione, eseguito

<prefix>:move-pane -t 1:1

e il riquadro con il processo in esso spostato nella finestra uno sulla sessione 1 .

Viene inserito come una divisione, quindi di solito si vorrebbe eseguire la finestra sull'altra sessione come finestra usa e getta.

Nota: sembra che la finestra di destinazione debba esistere, altrimenti il move-panecomando genererà un errore.

Per ulteriori informazioni sul formato per specificare sessioni, finestre e riquadri all'interno di un comando tmux, consultare la sezione COMMANDSin man tmux.


12
Esiste una procedura più semplice: contrassegnare il riquadro con <prefix>m, andare alla finestra di destinazione con <prefix>we spostare il riquadro contrassegnato con join-pane.
Dan Aloni,

7

Non posso commentare, quindi lo inserirò qui: per tmux 2.1-3build1 ~ preciso il comando dovrebbe essere:

<prefix>:move-pane -t session_name:window_number

- è necessario un " -t" prima del nome della sessione (non necessariamente un numero) e deve esistere la finestra con un determinato numero.

Tutto il resto è come descritto da the_velour_fog nella sua risposta .

PS Se digiti solo un session_namesenza in questo window_numbermodo:

<prefix>:move-pane -t session_name:,

quindi il riquadro verrà spostato nella finestra corrente della sessione di destinazione (e questa finestra verrà divisa).

PPS Se vuoi solo spostare la tua finestra (e non solo il tuo riquadro), allora c'è una buona risposta su come spostare la finestra tra i client tmux :

<prefix>:move-window [-d] [-s src-window] [-t dst-window]

(alias: movew)

dove src-windowe dst-windowavere la forma session:window.pane.


-1

Ho due sessioni in corso, ognuna nel proprio iTerm. Tutto quello che dovevo fare per spostare il riquadro da una sessione all'altra era

seleziona il riquadro

<leader>s <session>

dove <session>c'è un numero tra parentesi quadre

tmux 2.7


Questo in realtà non sposta il riquadro da una sessione all'altra. Questo cambia solo la sessione che stai visualizzando dal terminale corrente. È equivalente a disconnettersi e connettersi all'altra sessione. Voglio davvero essere in grado di spostare i riquadri tra le sessioni con più altri riquadri aperti.
HEGX64,
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.