Question Comment échanger deux volets dans Tmux?


J'ai deux volets en division horizontale. Je voudrais avoir le volet actuellement à droite pour être à 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'


144
2018-02-17 22:27


origine




Réponses:


le swap-pane commande peut le faire pour vous. le { et } les clés sont liées à swap-pane -U et swap-pane -D dans la configuration par défaut.

Donc, pour effectuer votre changement désiré, vous pouvez probablement utiliser Préfixe  { lorsque vous êtes dans le volet de droite (ou Préfixe  } si vous êtes dans le volet gauche).

le -U et -D se référer à "up" et "down" dans l'ordre d'indexation du volet ("up" est la même direction que Préfixe  o se déplace sur des vitres). Vous pouvez voir les indices de la fenêtre avec display-panes (Préfixe  q, par défaut).


208
2018-02-18 08:27



+1 pour spécifier Prefix au lieu de supposer que tout le monde utilisera Ctrl-b - Aaron Wallentine
D'accord. C'est encore pire quand les gens supposent que vous utilisez Ctrl-a, car ce sont les personnes qui savent que le préfixe peut être modifié pour convenir à l'utilisateur. - Brandon Ibbotson


Vous pouvez frapper Ctrl  b et continuez à tenir Ctrl en frappant o. Cela fera pivoter tous les volets existants, de sorte que dans votre cas, il échangera les deux seuls panneaux existants.

Ctrl  b + Alt  o tourne dans le sens inverse (utile lorsque vous avez plus de deux volets).


37
2018-01-02 10:28



Je ne peux pas obtenir cela - quand je fais Ctrl + b et puis o, j'obtiens une rotation du volet de la fenêtre, mais ensuite le focus revient au volet actuel. Je ne peux pas parcourir les panneaux sans avoir à appuyer plusieurs fois sur toute la séquence de Ctrl + b, ctrl + o. C'est un peu fastidieux. Savez-vous pourquoi cela pourrait se produire? - Stabledog
@Stabledog Pas sûr ... Juste pour être clair en ce qui concerne le comportement attendu: Ctrl, frappe bo à plusieurs reprises, les vitres tourneront. Le curseur doit rester au même endroit, c’est-à-dire ne pas suivre les volets, mais être placé dans le nouveau volet qui est pivoté dans la position du curseur. - Joel Ostblom
Oui, nous sommes sur la même page. Mais après le premier 'o', qui provoque une rotation du volet, le 'o' suivant est envoyé au shell sous-jacent et traité par l'application qui s'y trouve. Je pense à quelque chose de louche avec ma carte, ou quelque chose qui dépend de la version de tmux. Merci d'avoir répondu. - Stabledog
@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 le Ctrl+oest envoyé au shell au lieu de vers tmux, surtout si ce n'est pas le cas pour appuyer plusieurs fois sur Ctrl+b (ou d'autres commandes tmux?). - Joel Ostblom
@Stabledog En fait, je viens de remarquer que la seule autre commande où je peux continuer à maintenir le contrôle et à répéter les autres touches est Ctrl+b;, qui fait tourner le curseur entre deux volets. - Joel Ostblom


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

  1. ctrl-b q vous montre le "ID" pour chaque volet dans la fenêtre en cours - rappelez-vous les deux volets que vous souhaitez échanger. Disons qu'ils sont 3 et 5.
  2. ctrl-b : pour activer la ligne de commande tmux. Puis émettre la commande swap-pane -s 3 -t 5.

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


5
2018-03-21 18:50