tmux 1.7移动窗口

Edo*_*ard 4 tmux

我只是更新到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
Run Code Online (Sandbox Code Playgroud)

它给出了错误:

会议未找到:4

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

Chr*_*sen 6

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

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

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

move-window -t 4 ; move-window -r
Run Code Online (Sandbox Code Playgroud)

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

bind-key : move-window -t 4 \; move-window -r
Run Code Online (Sandbox Code Playgroud)

此外,如果您通常维护一个"无间隙"的窗口编号序列(例如,您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).