tmux ウィンドウを並べ替えるにはどうすればいいですか?

tmux ウィンドウを並べ替えるにはどうすればいいですか?

ではscreen、 と入力するだけで、C-a :number 0ウィンドウをウィンドウ リストの先頭に移動し、他のすべてのウィンドウを 1 つ下に移動できます。 の同等のコマンド シーケンスは何ですかtmux? マニュアル ページを確認しましたが、この点については混乱しています。

答え1

このswap-windowコマンドはあなたが望むものに最も近いものです。

「プレフィックス:」(デフォルトではCtrl+ B):を使用すると、tmux コマンド プロンプトが表示されます。そこで次のように入力します。

swap-window -s 3 -t 1

ウィンドウ番号 3 とウィンドウ番号 1 の位置を入れ替えます。

現在のウィンドウを一番上のウィンドウと入れ替えるには、次のようにします。

swap-window -t 0

インデックス 0 にウィンドウがない場合には、次のようにします。

move-window -t 0

(base-index が 0 の場合、これはデフォルトです)。コマンドは、move-window -t <NUMBER>デフォルトではCtrl+ B、にバインドされています.

~/.tmux.conf次のコマンドを追加することで、そのコマンドをキーにバインドできます (たとえば、「トップ」の場合は T)。

bind-key T swap-window -t 0

答え2

ガレスの回答に加えて、次のキーバインディングを使用できます

bind-key -n C-S-Left swap-window -t -1
bind-key -n C-S-Right swap-window -t +1

Ctrl + Shift + 左 ( を押すと、現在のウィンドウが左に移動します。同様に右に移動します。修飾子 (Cb) を使用する必要はありません。

tmux 3.0バージョンでは、次のキーバインディングを使用する必要があります。

bind-key -n C-S-Left swap-window -t -1\; select-window -t -1
bind-key -n C-S-Right swap-window -t +1\; select-window -t +1

答え3

tmux で に相当するの:number 42は です:move-window -t 42

答え4

とのどちらかを選択する外部シェル スクリプトを使用して、screenのコマンドと同等の機能を実装できます。次のようにしてキーにバインドできます。numberswap-windowmove-window

bind < command-prompt -p index "run-shell '~/.tmux.number.sh %%'"

~/.tmux.number.sh:

#!/bin/bash
if [ $# -ne 1 -o -z "$1" ]; then
    exit 1
fi
if tmux list-windows | grep -q "^$1:"; then
    tmux swap-window -t $1
else
    tmux move-window -t $1
fi

関連情報