Short of en faisant cela est-il possible de déplacer une commande en cours d'exécution dans un volet vers une autre session tmux ?
Réponses
Trop de publicités?Oui, c'est assez facile, utilisez le move-pane
commande tmux. Pour plus d'informations, exécutez
man tmux | less -I '+/mOVE-pane'
La partie la plus délicate est de savoir comment tmux fait référence aux sessions, aux fenêtres et aux volets dans les commandes pour manipuler les volets, etc.
Première étape
Déplacez-vous dans le volet que vous souhaitez déplacer vers l'autre session
Deuxième étape
Obtenez le nom de la session cible en exécutant <prefix>s
.
Sur mon système, cela produit :
(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).
Étape 3 - exécuter la commande
<prefix>:move-pane -t <session_name>:<window number>
^^^^^^^^^^^^^^ the name from above goes in here
Donc, sur mon système, je me suis déplacé dans le volet avec le processus en cours, j'ai exécuté
<prefix>:move-pane -t 1:1
et le volet contenant le processus s'est déplacé vers la fenêtre 1 de la session. 1
.
Elle est insérée en tant que fractionnement, de sorte qu'il est généralement préférable d'exécuter la fenêtre sur l'autre session en tant que fenêtre jetable.
Remarque : il semble que la fenêtre cible doive exister, sinon la fonction move-pane
émettra une erreur.
Pour plus d'informations sur le format pour spécifier les sessions, les fenêtres et les volets dans une commande tmux, voir la section COMMANDS
sur man tmux
.
Je ne peux pas commenter, donc je vais le placer ici : pour tmux 2.1-3build1~precise la commande devrait être :
<prefix>:move-pane -t session_name:window_number
-- vous avez besoin d'un " -t
" devant le nom de la session (pas nécessairement un numéro), et la fenêtre avec un numéro donné doit exister.
Tout le reste est tel que décrit par le_brouillard_de_velours sur sa réponse .
P.S. Si vous tapez seulement un session_name
sans window_number
comme ça :
<prefix>:move-pane -t session_name:
,
alors votre volet sera déplacé dans la fenêtre actuelle de la session de destination (et cette fenêtre sera divisée).
P.P.S. Si vous souhaitez simplement déplacer votre fenêtre (et pas seulement votre vitre), il existe une bonne réponse sur la manière de procéder. Déplacer la fenêtre entre les clients tmux :
<prefix>:move-window [-d] [-s src-window] [-t dst-window]
(alias: movew)
donde src-window
y dst-window
ont la forme session:window.pane
.
Pour la version tmux 3.1b - Je viens de découvrir le raccourci : <prefix>.
(un point)
<prefix>.
alors l'entrée 6<enter>
- déplacer la fenêtre actuelle à la position 6 (dans la session actuelle) <prefix>.
alors l'entrée 2:6<enter>
- déplacer la fenêtre actuelle à la position 6 dans la session 2 (voir aussi les noms/numéros de session avec <prefix>s
o <prefix>:
- ls<enter>
(également nouveau pour moi : <prefix>!
pour déplacer un volet (d'une division) vers une nouvelle fenêtre)