Pour ce que ça vaut:
J'ai bidouillé ce script pour pouvoir ordonner toutes les fenêtres dans une "TUI". Il répertorie toutes vos fenêtres dans un fichier temporaire, l'ouvre avec votre éditeur par défaut (suppose que vous avez défini $EDITOR). Ensuite, vous pouvez réorganiser les lignes et après avoir enregistré et fermé le fichier, les fenêtres sont réordonnées en conséquence. (Cela est similaire à l'ordonnancement des commits lors de l'exécution de git rebase -i
)
#!/bin/bash
# Utilisation: tmux-mv
# Déplacez vos fenêtres tmux dans un éditeur
tmpfile=$(mktemp)
tmux list-windows > $tmpfile
$EDITOR $tmpfile
# Déplacez toutes les fenêtres vers 50..x dans l'ordre que vous venez de spécifier
# Suppose que vous n'avez pas déjà 50 fenêtres(!)
cat $tmpfile | awk -F ":" '{ print " -s " $1 " -t 5" NR-1 }' |\
xargs -I {} sh -c 'tmux move-window -d {}'
# Les déplacer vers le bas en conservant l'ordre
tmux move-window -d -r
rm $tmpfile
Il pourrait probablement être beaucoup amélioré, en particulier:
REMARQUE: Vous pourriez être déplacé vers une autre fenêtre après l'exécution de la commande.
Un gif en action (github)
149 votes
C-b
,.
vous permet de renuméroter une fenêtre.9 votes
En lisant toutes les nombreuses réponses, je ne vois toujours pas de solution facile à la question de l'OP: comment déplacer une fenêtre donnée à la position 0 et décaler toutes les autres vers la droite. Dois-je vraiment déplacer manuellement chacune d'entre elles pour faire cela? Je veux juste annuler un déplacement que j'ai fait par erreur (et je ne suis pas sûr de quoi exactement) qui je pense a déplacé la fenêtre 0 vers la fenêtre 8 et déplacé toutes les autres vers la gauche.
1 votes
@nealmcb la solution la plus simple que j'ai pu trouver est de régler l'index de base à 1, renuméroter, puis déplacer votre fenêtre dans l'emplacement vide 0 : superuser.com/a/1155999/674549
0 votes
Pour la différence de
swap-window -s number
etswap-window -t number
pour échanger la fenêtre actuelle, consultez ma réponse ici.0 votes
Voir cette réponse pour une fonction bash afin de déplacer une plage de fenêtres tmux, par ex [2-5] de [0-6] fenêtres.
3 votes
@isomorphismes
C-b .
renumérote uniquement vers un numéro de fenêtre inexistant.:swap-window
peut réellement déplacer deux fenêtres existantes1 votes
@nealmcb Peut-être que vous aimez ma méthode : superutilisateur.com/a/1663968/121441
0 votes
Beaucoup de bonnes réponses ici, mais en manque de la réponse ultime pour "comment réorganiser lorsque l'on a les fenêtres 1, 2, 3, 6, 7 à 1-5". Tmux a
:move-window -r
pour faire ce genre de chose