Comment peut-on échanger deux vitres dans Tmux?


208

J'ai deux panneaux en split horizontal. Je voudrais avoir le volet actuellement sur la droite pour être sur la gauche dans la fenêtre. Je ne parle pas de déplacer le focus ( Ctrl+ B o). Comment puis-je y arriver?

'volet gauche' <-> 'volet droit'

Réponses:


307

La swap-panecommande peut le faire pour vous. Les touches {et }sont liées à swap-pane -Uet swap-pane -Ddans la configuration par défaut.

Donc, pour effectuer le changement souhaité, vous pouvez probablement l'utiliser Prefix {lorsque vous êtes dans le volet de droite (ou Prefix }si vous êtes dans le volet de gauche).

Le -Uet se -Dréférer à « haut » et « vers le bas » dans l'ordre des index de fenêtre ( « up » est la même direction que Prefix ose déplace à travers les vitres). Vous pouvez voir les index de volet avec display-panes( Prefix q, par défaut).


8
+1 pour spécifier Prefixau lieu de supposer que tout le monde utiliseraCtrl-b
Aaron Wallentine

1
D'accord. C'est encore pire lorsque les utilisateurs supposent que vous utilisez Ctrl-a, car ils savent que le préfixe peut être modifié en fonction de l'utilisateur.
byxor

Voir la réponse de @ kay pour une utilisation plus générale de swap-pane(et la réponse à la question dans le titre).
Jonathan

51

Vous pouvez frapper Ctrl bet continuer à tenir pendant Ctrlque vous frappez o. Cela fera pivoter tous les volets existants. Ainsi, dans votre cas, les deux seuls volets existants seront échangés.

Ctrl b+ Alt otourne dans le sens contraire (utile lorsque vous avez plus de deux volets).


Oui, nous sommes sur la même page. Mais après le premier "o", qui provoque une rotation du volet, le prochain "o" est envoyé au shell sous-jacent et traité par l'application, quelle qu'elle soit. Je pense quelque chose de louche avec ma carte, ou peut-être quelque chose qui dépend de la version de tmux. Merci d'avoir répondu.
Stabledog

1
@Stabledog Je suis actuellement sur tmux 2.3, mais je pense que cela a toujours fonctionné pour moi ... Je ne peux pas vraiment penser à ce qui pourrait être le problème. Cela semble étrange que cela Ctrl+osoit envoyé au shell au lieu de tmux, surtout si ce n’est pas le cas pour un appui répété Ctrl+b(ou d’autres commandes tmux?).
joelostblom

En fait, je pense que cela se produit pour toutes les commandes. Au moins, je ne suis au courant d'aucun des cas où je peux faire Ctrl + x, appuyer sur une touche liée à une opération et rester en mode "clavier tmux". J'ai juste supposé que c'était par conception.
Stabledog

1
@Stabledog En fait, je viens de remarquer que la seule autre commande permettant de maintenir le contrôle enfoncé et de répéter les autres touches est de Ctrl+b;faire pivoter le curseur entre deux volets.
Joelostblom

24

Le contrôle le plus précis que vous puissiez avoir est d'utiliser swap-pane directement la commande . Ce n'est pas si difficile à faire:

  1. ctrl-b qvous montre l'ID de chaque volet de la fenêtre en cours; rappelez-vous des deux volets que vous souhaitez échanger. Disons qu'ils sont 3 et 5.
  2. ctrl-b :activer la ligne de commande tmux. Puis lancez la commande swap-pane -s 3 -t 5.

Notez que vous avez la saisie automatique lors de la saisie des commandes. Vous pouvez également rechercher la syntaxe d'une commande directement à partir de la page de manuel tmux . C'est comme ça que j'apprends la syntaxe swap-pane.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.