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

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

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

评论

相关:stackoverflow.com/questions/8469612/…

#1 楼

看起来您需要这样: movew将立即重新编号所有窗口。

评论


对于需要更明确说明的用户:ctrl b:然后输入move-window -r(其中ctrl b是默认的前缀键)

–mark
19年1月16日在22:32



顺便说一句,在tmux会话中,您可以在任何窗口/ shell中执行tmux命令,它将在包含tmux会话的位置执行操作。因此,简单的tmux move-window -r可以执行相同的操作,而无需使用tmux prefox组合键。

–Gurjeet Singh
20 May 15'0:11

#2 楼

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)。启用后,tmux将在关闭任何窗口后自动为会话的窗口重新编号(如renumber-windows一样)。

如果您喜欢这种行为,则可以在全局值中打开它,以便所有会话不覆盖它会自动启用它:

set-option -g renumber-windows on




评论


最后!我一直在寻找这个renumber-windows选项很久了!总是让我感到困惑,因为我之前已经关闭了一些窗口,所以新窗口在“左侧”打开。

–油带
15年11月16日在8:38



#3 楼

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

它们各自的顺序或激活“重新编号窗口”选项。结果:

1 3 4 8 9 13


在.tmux.conf中放入以下内容:

1 2 3 4 5 6


命中[PREFIX ] -R重新排序窗口(或更改绑定)。

我当前正在运行tmux 1.9a。

以上内容可以用更简单的替换:

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


评论


这与运行“ move-window -r”不同吗?

–PonyEars
2014年8月23日在20:43



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

–目标
2014年8月25日在8:07

#4 楼

如果您只需要窗口在被杀死时总是重新编号,则可以在.tmux.conf中使用它:

set-option -g renumber-windows on


评论


这正是我想要的!

– Dharmit
20年6月17日在9:23

#5 楼

前面的答案都很好,但是,如果您想要一次又一次地打乱少量窗口,这是一个简洁的解决方案。到一个新的窗口号(必须尚未被占用)。要交换两个窗口,请先将一个窗口临时移到新编号。例如交换Windows 3和5:

move-window -t <number>