Mise à jour des index de fenêtre avec tmux?

18

En utilisant tmux, j'ai fermé une fenêtre indexée 3, alors maintenant j'ai 1,2,4, ...

Je préfère que les fenêtres soient séquentielles, alors existe-t-il un moyen de les forcer à se réindexer?

mahemoff
la source

Réponses:

29

tmux 1.7 inclut l' renumber-windowsoption de session qui maintient une séquence «sans espace» pour les numéros de fenêtre d'une session. Vous pouvez définir l'option «globalement» pour qu'elle s'applique à toutes les sessions qui n'ont pas remplacé la valeur globale. Par exemple dans votre ~/.tmux.conf:

set-option -g renumber-windows on

Si vous ne voulez pas toujours que toutes vos sessions aient des numéros de fenêtre «sans espace», vous pouvez utiliser move-window -r(l'option est également nouvelle pour * tmux 1.7) pour renuméroter les fenêtres dans la session en cours (ou dans une autre session si vous utilisez le -toption).

Chris Johnsen
la source
merci pour cette option, c'est exactement ce que je cherchais. tmux est incroyable
Tropilio
3

Il n'y a pas de manière intégrée de le faire, mais ce script bash devrait fonctionner. Exécutez-le depuis la session:

i=0
tmux list-windows | cut -d: -f1 | while read winindex; do 
  if (( winindex != i )); then
    tmux move-window -d -s $winindex -t $i
  fi
  (( i++ ))
done

Le -ddrapeau move-windowévite de donner le focus à cette fenêtre.

Thor
la source
Cela a fonctionné, merci. J'avais en fait une fenêtre nulle, donc je devais commencer avec i = 0.
mahemoff
2
Ah j'oublié que j'avais set-option -g base-index 1en .tmux.conf.
Thor
Même avec les nouvelles fonctionnalités de tmux 1.7, j'ai trouvé cette implémentation utile pour éviter de déplacer certaines fenêtres.
dequis