tmuxでウィンドウの番号を付け直す


128

tmuxで10個以上のウィンドウが表示されることがよくあります。後で、古いもののいくつかを閉じます。たとえば、ウィンドウ15をウィンドウ3に再番号付けする方法はありますか(もう存在しません)。またはpack、空のスロットがないように、それらすべてに再び?あなたができないので、より高い番号のウィンドウにジャンプするのは難しいので、私はこれをしたいと思いますCtrl+B, 15。私が使用する必要がCtrl+B, w窓をリストアップして、私がオープンしたいウィンドウに対応する文字を入力します。

私はウィンドウを交換できることを知っています。たとえばCtrl+B, c、空のスロット3で開く新しいウィンドウ()を作成できます。その後、swapwウィンドウ15とウィンドウ3を開き、ウィンドウ15を閉じることができます。明らかに、これは面倒なアプローチです。

tmuxで多くのウィンドウをどのように管理しますか?

回答:


123

これが必要なようです:

move-window [-rdk] [-s src-window] [-t dst-window]
              (alias: movew)
        This is similar to link-window, except the window at src-window
        is moved to dst-window.  With -r, all windows in the session are
        renumbered in sequential order, respecting the base-index option.

movewパラメータなしで呼び出すと、現在のウィンドウが最初の空き位置に移動します。movew -rすべてのウィンドウの番号を一度に変更します。


5
より明示的な指示が必要な場合:ctrl b :入力move-window -rctrl bデフォルトのプレフィックスキー)
マーク

92

tmux 1.7には、ギャップのない/詰め込まれたウィンドウ番号の確立と維持に役立つ機能がいくつかあります。

  • move-windowコマンドは、新しい学び-rのセッション内のすべてのウィンドウの番号を変更しますオプション(どちらか現在のセッション、またはで指定された1 -tオプション)。

    {1:A、4:B、15:C}のようなウィンドウのセットがある場合は、実行move-window -rしてそれらの番号を{1:A、2:B、3:C}に変更することができます(これらはbase-index;この例では1)。

  • ときにrenumber-windowsセッションオプションが有効になっている、tmuxはは自動的に(のようにセッションのウィンドウを再番号付けしますmove-window -r任意のウィンドウを閉じた後)。

    この動作が好きな場合は、グローバル値でオンにして、オーバーライドしないすべてのセッションで自動的に有効にすることができます。

    set-option -g renumber-windows on
    

4
最後に!私はずっと前からこのrenumber-windowsオプションを探していました!以前はいくつか閉じていたため、新しいウィンドウが「左」で開くといつも悩みました。
オリバンド

15

私はしばしば、ウィンドウ番号の間にギャップがある状況にいることに気づきます。たとえば、ウィンドウとのセッションです。

1 3 4 8 9 13

それぞれの順序を変更したり、 'renumbering-windows'オプションをアクティブにしたりせずに並べ替えるtmuxスクリプトを作成しました。結果:

1 2 3 4 5 6

.tmux.confに次を追加します。

bind R                                      \
    set -g renumber-windows on\;            \
    new-window\; kill-window\;              \
    set -g renumber-windows off\;           \
    display-message "Windows reordered..."

[PREFIX] -Rを押してウィンドウを並べ替えます(またはバインディングを変更します)。

現在、tmux 1.9aを実行しています。

上記は、はるかに単純なものに置き換えることができます。

bind R                                      \
    move-window -r\;                        \
    display-message "Windows reordered..."

1
これは、「move-window -r」の実行とは異なりますか?
PonyEars 14

2
いいえそうではありません。move-windowの-rオプションについて知りませんでした:)
ゴスペル14

6

これまでの回答はすべて問題ありませんが、少数のウィンドウを時々シャッフルするだけの場合の簡潔な解決策があります。

move-window -t <number>

現在のウィンドウを新しいウィンドウ番号に移動します(まだ使用されていない番号)。2つのウィンドウを交換するには、最初に1つのウィンドウを一時的に新しい番号に移動します。たとえば、ウィンドウ3と5を交換するには:

move-window -s 3 -t 99
move-window -s 5 -t 3
move-window -s 99 -t 5

2

殺されたときに常に番号を変更するためにウィンドウが必要な場合は、これを以下で使用できます.tmux.conf

set-option -g renumber-windows on
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.