5

我刚刚更新到 tmux 1.7,在手册页中有一个新的使用选项movew-r它说

move-window [-rdk] [-s src-window] [-t dst-window] (别名:movew) 这类似于链接窗口,除了 src-window 的窗口被移动到 dst-window。使用 -r,会话中的所有窗口都按顺序重新编号,尊重 base-index 选项。

如果我在会话中有 3 个窗口:1 2 3,我从窗口 1 尝试这个命令:

prefix : movew -r -t 4

它给出了错误:

找不到会话:4

这不只是将窗口 1 移动到窗口 4 并重命名窗口吗?我不是想把它移到一个新的会话中,只是在同一个会话中的一个新窗口。

4

1 回答 1

7

文档没有明确说明这一点,但是当您使用 时-r,参数 to-t被解释为会话说明符,而不是窗口说明符。

因此,move-window -r -t 4告诉tmux重新编号会话中命名/匹配字符串“4”的所有窗口。

听起来您可以使用两个命令完成您想要的*(假设您已base-index设置为 1):

move-window -t 4 ; move-window -r

您可以将一系列命令绑定到一个键,但您需要对分号进行转义(这样第二个命令就不会简单地在初始绑定命令之后立即执行):

bind-key : move-window -t 4 \; move-window -r

此外,如果您通常维护一个“无间隙”的窗口编号序列(例如,您renumber-windows启用了该选项),那么您可以替换4with:并且命令对将适用于任意数量的窗口(不仅仅是 3 个或更少)::目标窗口说明符的意思是“当前会话中第一个未使用的窗口编号”(即,如果您已经有窗口 1-3,则为 4)。


*如果我正确理解您想要将一组窗口(如 1:A、2:B、3:C)转换为 1:B、2:C、3:A(即移动窗口 #1(“A”)到结束并重新编号,以便您再次获得 1-3 而不是 2-4)。

于 2012-10-15T05:55:48.883 回答