Aktualizowanie indeksów okien za pomocą tmux?

18

Za pomocą tmux zamknąłem okno o indeksie 3, więc teraz mam 1,2,4, ...

Wolę sekwencję okien, więc czy jest jakiś sposób, aby zmusić je do ponownej indeksacji?

mahemoff
źródło

Odpowiedzi:

29

tmux 1.7 zawiera renumber-windowsopcję sesji, która utrzymuje sekwencję „bez przerw” dla numerów okien sesji. Możesz ustawić opcję „globalnie”, aby dotyczyła wszystkich sesji, które nie zastąpiły wartości globalnej. Np. W ~/.tmux.conf:

set-option -g renumber-windows on

Jeśli nie zawsze chcesz, aby wszystkie sesje miały numery okien „bez przerw”, możesz użyć move-window -r(ta opcja jest również nowa w * tmux 1.7), aby ponownie numerować okna tylko w bieżącej sesji (lub w innej sesji, jeśli używasz -topcja).

Chris Johnsen
źródło
dzięki za tę opcję, właśnie tego szukałem. tmux jest niesamowity
Tropilio,
3

Nie ma wbudowanego sposobu, aby to zrobić, ale ten skrypt bash powinien działać. Uruchom go z poziomu sesji:

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

-dFlagę move-windowunika dając tym oknie ostrość.

Thor
źródło
To działało, dzięki. Właściwie miałem okno zerowe, więc musiałem zacząć od i = 0.
mahemoff
2
Ach zapomniałem miałem set-option -g base-index 1w .tmux.conf.
Thor
Nawet dzięki nowym funkcjom tmux 1.7 uznałem tę implementację za przydatną, aby uniknąć przenoszenia niektórych okien.
dequis