如何重新排序 tmux 視窗?

如何重新排序 tmux 視窗?

在 中screen,我只需鍵入即可C-a :number 0將視窗移至視窗清單的頂部,並將所有其他視窗向下推。的等效命令序列是什麼tmux?我查看了手冊頁,但我發現它在這一點上令人困惑。

答案1

swap-window命令最接近您想要的。

「Prefix :」(預設為Ctrl+ B:會將您帶到 tmux 命令提示字元。在那裡你輸入:

swap-window -s 3 -t 1

讓 3 號窗口和 1 號窗口交換位置。

若要將目前視窗與頂部視窗交換,請執行下列操作:

swap-window -t 0

在不太可能的情況下,索引 0 處沒有窗口,請執行以下操作:

move-window -t 0

(如果基本索引為 0,則預設情況下)。指令預設move-window -t <NUMBER>綁定到Ctrl+ B, .

您可以透過新增下列內容將該指令綁定到一個鍵(例如,T 表示「top」)~/.tmux.conf

bind-key T swap-window -t 0

答案2

添加到 Gareth 的答案中,您可以使用以下鍵綁定

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

按 Ctrl+Shift+Left(會將目前視窗向左移動。同樣向右移動。無需使用修飾符 (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

您可以使用在和之間進行選擇的外部 shell 腳本來實現與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

相關內容