我只是更新到tmux 1.7,在手册页中有一个使用movew
的新选项:-r
表示
move-window [-rdk] [-s src-window] [-t dst-window] (别名:movew) 这类似于链接窗口,除了src-window的窗口移动到dst-window。使用-r,会话中的所有窗口都按顺序重新编号,与基本索引相关 选项。
如果我在会话中有3个窗口:1 2 3并且我从窗口1尝试此命令:
prefix : movew -r -t 4
它给出了错误:
未找到会话:4
这不是只将窗口1移动到窗口4并重命名窗口吗?我不是试图将它移动到新的会话,只是在同一个窗口中的新窗口。
答案 0 :(得分:6)
文档没有明确说明这一点,但是当你使用-r
时,-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
选项),那么您可以将4
替换为:
和命令对将适用于任意数量的窗口(不只是3个或更少)::
作为目标窗口说明符意味着“当前会话中第一个未使用的窗口编号”(即如果您已经有窗口1-3则为4)
* 如果我理解你想要转换一组窗口,如1:A,2:B,3:C到1:B,2:C,3:A(即将窗口#1(“A”)移动到最后并重新编号,以便再次使用1-3而不是2-4。)