在tmux中重新编号窗口


128

我经常在tmux中遇到十多个窗口。后来,我关闭了一些旧的。有没有一种方法可以将第15窗口重编号为第3窗口(不再存在)?还是pack再次将它们全部收起来,以确保没有空的插槽?我想这样做是因为很难跳到编号更高的窗口,因为您做不到Ctrl+B, 15。我必须使用Ctrl+B, w列出窗口,然后键入与要打开的窗口相对应的字母。

我知道我可以交换Windows。例如,我可以创建一个新窗口(Ctrl+B, c),该窗口将在空插槽3中打开。然后,我可以swapw窗口15和窗口3,然后关闭窗口15。显然,这是一个乏味的方法。

如何在tmux中管理许多窗口?

Answers:


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选项,该选项将重新为会话中的所有窗口编号(当前会话或使用该-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

我经常发现自己处于窗口编号之间存在间隙的情况,例如与Windows进行会话:

1 3 4 8 9 13

我编写了一个tmux脚本来重新排序它们,而无需更改它们各自的顺序或激活“ renumbering-windows”选项。结果:

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”不同吗?
2014年

2
不它不是。我只是不知道move-window的-r选项:)永远不会太晚学习,谢谢!
gospes

6

前面的答案都很好,但是如果您想要的只是一次又一次地洗净少量窗户,那么这是一个简洁的解决方案。

move-window -t <number>

将当前窗口移到一个新的窗口号(该窗口号必须尚未被占用)。要交换两个窗口,请先将一个窗口暂时移至新编号。例如,交换Windows 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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.