210 votes

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

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

211voto

demure Points 5605

Commandes tmux pertinentes

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

Fixations

Vous pourriez ajouter les liaisons suivantes à votre fichier ~/.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 permet de déplacer les volets entre les fenêtres existantes.

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

Usage alternatif

Ces trois commandes peuvent être utilisées à partir de l'invite du tmux comme : <prefix>+: puis break-pane
Ou à l'invite du Shell (à l'intérieur de tmux) avec : tmux break-pane .

16 votes

Il est intéressant de noter que vous pouvez cibler un volet en utilisant le format suivant : "mysession:mywindow.mypane" (dans une session différente), et "mywindow.mypane" (dans la même session). Vous pouvez également utiliser "mysession:progname" si le programme exécuté dans ce volet est unique.

32 votes

bind-key ! de l'autre réponse est tout ce dont j'ai besoin.

0 votes

Et quelle est la différence entre join-pane -s y join-pane -t ?

195voto

jimbog Points 1901

Dans la liste des commandes, vous pouvez voir qu'elle s'appelle break-pane et que la commande est juste

bind-key !

où bind-key a la valeur par défaut de Ctrl + B

7 votes

Existe-t-il un moyen de rattacher le volet "cassé" ?

5 votes

@nazikus vous pouvez utiliser join-pane . Si vous ne voyez pas de liens pour cela dans la rubrique 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> .

6 votes

N'oubliez pas le côlon ! Il est join-pane -t <optional session name>:<destination pane index> par exemple join-pane -t :0

13voto

Andrew Points 529

Dans la dernière version de tmux, installée à partir de homebrew sur OSx - 1.9a - le raccourci clavier par défaut implémente un panneau de jonction avec un menu.

bind-key          S choose-window "join-pane -v -s "%%""
bind-key          V choose-window "join-pane -h -s "%%""

6voto

Peyman Karimi Points 51

tmux 1.8 ou supérieur :

Si vous avez l'intention de passer en mode "plein écran", vous pouvez utiliser :

bind-keyz

pour faire un "zoom avant" (et aussi un zoom arrière après avoir terminé votre travail).

0 votes

Oui, mais si, à partir de là, je veux continuer à ouvrir de nouvelles fenêtres et que je ne veux pas que l'ancien contexte prenne de la place, je dois m'en détacher.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X