Memperbarui indeks jendela dengan tmux?

18

Menggunakan tmux, saya menutup jendela yang diindeks 3, jadi sekarang saya punya 1,2,4, ...

Saya lebih suka memiliki sekuensial windows, jadi apakah ada cara untuk memaksa mereka untuk mengindeks ulang?

mahemoff
sumber

Jawaban:

29

tmux 1.7 mencakup renumber-windowsopsi sesi yang mempertahankan urutan "tanpa celah" untuk nomor jendela sesi. Anda dapat mengatur opsi "global" agar berlaku untuk semua sesi yang belum menimpa nilai global. Misalnya di Anda ~/.tmux.conf:

set-option -g renumber-windows on

Jika Anda tidak selalu ingin semua sesi Anda memiliki nomor jendela "tanpa celah", maka Anda dapat menggunakan move-window -r(opsi ini juga baru untuk * tmux 1.7) untuk memberi nomor baru pada jendela hanya pada sesi saat ini (atau sesi lain jika Anda menggunakan -tpilihan).

Chris Johnsen
sumber
terima kasih untuk opsi ini, itulah yang saya cari. tmux is amazing
Tropilio
3

Tidak ada cara untuk melakukannya, tetapi skrip bash ini harus berfungsi. Jalankan dari dalam sesi:

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

The -dbendera untuk move-windowMenghindari memberikan yang fokus jendela.

Thor
sumber
Itu berhasil, terima kasih. Sebenarnya saya memiliki jendela nol, jadi saya harus mulai dengan i = 0.
mahemoff
2
Ah aku lupa aku punya set-option -g base-index 1di .tmux.conf.
Thor
Bahkan dengan fitur baru tmux 1.7, saya menemukan implementasi ini berguna untuk menghindari memindahkan beberapa windows.
Dequis