tmux でウィンドウインデックスを更新しますか?

tmux でウィンドウインデックスを更新しますか?

tmux を使用して、インデックス 3 のウィンドウを閉じたので、現在は 1、2、4、... になっています。

ウィンドウをシーケンシャルにしたいのですが、強制的に再インデックスする方法はありますか?

答え1

tmux1.7renumber-windowsには、セッションのウィンドウ番号の「ギャップレス」シーケンスを維持するセッション オプションが含まれています。オプションを「グローバル」に設定すると、グローバル値を上書きしていないすべてのセッションに適用できます。たとえば、次のようになります~/.tmux.conf

set-option -g renumber-windows on

すべてのセッションに常に「ギャップのない」ウィンドウ番号を付けたくない場合は、move-window -r(このオプションも *tmux 1.7 の新機能です)を使用して、現在のセッション(または、オプションを使用する場合は他のセッション)のウィンドウの番号を再設定できます-t

答え2

これを実行する組み込みの方法はありませんが、この bash スクリプトは機能するはずです。セッション内から実行します。

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

-dそのウィンドウにフォーカスを与えないようにするフラグmove-window

関連情報