如何重新排序 tmux 窗口?

如何重新排序 tmux 窗口?

在 中screen,我只需键入即可C-a :number 0将窗口移动到窗口列表的顶部,并将所有其他窗口向下移动。 的等效命令序列是什么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 表示“top”):

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

相关内容