Déplacer le volet dans une nouvelle fenêtre dans tmux

156

Je sais qu'il est possible dans tmux de rejoindre une fenêtre en tant que volet, mais est-il possible de déplacer un volet vers sa propre fenêtre (onglet)? J'ai essayé de chercher dans la page de manuel mais je ne l'ai pas trouvée. Je suppose qu'il est possible de le faire via un script shell, mais existe-t-il un autre moyen plus élégant?

Mikey S.
la source

Réponses:

166

Commandes tmux pertinentes

  • join-pane -s
  • join-pane -t
  • break-pane

Fixations

Vous pouvez ajouter les liaisons suivantes à votre ~/.tmux.conf:

## Join windows: <prefix> s, <prefix> j
bind-key j command-prompt -p "join pane from:"  "join-pane -s '%%'"
bind-key s command-prompt -p "send pane to:"  "join-pane -t '%%'"

Ce qui précède peut déplacer des panneaux entre des fenêtres existantes.

Pour ouvrir un volet dans une nouvelle fenêtre, utilisez break-pane (qui peut également être lié) .

Usage alternatif

Les trois commandes peuvent être utilisées à partir de l'invite du tmux comme: <prefix>+:alors break-pane
ou à l'invite du shell ( à l' intérieur tmux) avec: tmux break-pane.

sage
la source
11
Il convient de noter que vous ciblez un volet au format suivant: "mysession: mywindow.mypane" (si vous êtes dans une session différente) et "mywindow.mypane" (si vous êtes dans la même session). Vous pouvez également utiliser "mysession: progname" si le programme exécuté dans ce volet est unique.
Ben Davis
15
bind-key !de l'autre réponse est tout ce dont j'ai besoin.
Guaka
137

Dans la liste des commandes, vous pouvez voir que cela s’appelle pause-volet et que la commande est juste

bind-key!

où bind-key est défini par défaut sur Ctrl+B

jimbog
la source
5
y a-t-il un volet à fixer au panneau "brisé"?
Nazikus
3
@ nazikus, vous pouvez utiliser join-pane. Si vous ne voyez aucune liaison dans bind-key ?(je ne l'ai pas fait), vous pouvez appeler l'invite de commande avec bind-key :et exécuter join-pane -t <destination pane index>.
Austin Adams
4
N'oubliez pas le côlon! C'est par join-pane -t <optional session name>:<destination pane index>exemplejoin-pane -t :0
Walf
11

Dans la dernière version de tmux, installée à partir de homebrew sur OSx - 1.9a - la liaison de clé par défaut implémente join-pane avec un menu

bind-key          S choose-window "join-pane -v -s "%%""
bind-key          V choose-window "join-pane -h -s "%%""
Andrew
la source
0

tmux 1.8 ou supérieur:

Si vous souhaitez passer en mode "plein écran", vous pouvez utiliser:

bind-key z

pour "zoomer" (et aussi pour effectuer un zoom arrière une fois votre travail terminé).

Peyman Karimi
la source