我有两个水平拆分的窗格。我希望当前窗格位于窗口的右侧。我不是在谈论移动焦点(Ctrl + B o)。我该如何实现?

“左窗格” <->“右窗格”

#1 楼

swap-pane命令可以为您执行此操作。在默认配置中,{和}键绑定到swap-pane -Uswap-pane -D

因此,要实现所需的更改,您可以在右窗格中使用Prefix {(如果存在,则使用Prefix})。您在左窗格中。)

-U-D分别以窗格索引顺序指代“上”和“下”(“上”是与前缀o在各窗格中移动的方向相同)。您可以使用display-panes(默认情况下为前缀q)查看窗格索引。

评论


+1用于指定前缀,而不是假定所有人都将使用Ctrl-b

–亚伦·瓦伦丁
17-10-5在15:55



同意当人们认为您使用Ctrl-a时,情况甚至更糟,因为他们是知道可以更改前缀以适合用户的人们。

–byxor
17-10-13在10:46



有关交换窗格的更一般用法,请参阅@kay的回复(以及标题中对问题的回答)。

–乔纳森
18/12/19在19:18

#2 楼

您可以按Ctrl b并在按住o的同时按住Ctrl。这将旋转所有现有的窗格,因此,在您的情况下,它将交换仅两个现有的窗格。

Ctrl b + Alt o反向旋转(当您有两个以上的窗格时很有用)。

评论


是的,我们在同一页上。但是在第一个'o'确实会导致窗格旋转之后,下一个'o'被发送到底层shell并由那里的任何应用程序进行处理。我在想我的地图有些混乱,或者可能取决于tmux版本。感谢您的回应。

–稳定狗
17年2月14日在17:34

@Stabledog我目前正在使用tmux 2.3,但是我认为这一直对我有用...我真的想不到可能是什么问题。 Ctrl + o是发送到外壳程序而不是发送到tmux的,这听起来很奇怪,尤其是如果不是反复按Ctrl + b(或其他tmux命令?)的情况下。

– joelostblom
17年2月14日在23:45

实际上,我认为所有命令都在发生这种情况。至少,我不知道在任何情况下都可以执行Ctrl + x组合键,按绑定到某些操作的键并保持在“ tmux键盘”模式。我只是以为是设计使然。

–稳定狗
17年2月15日在17:45

@Stabledog实际上,我只是注意到,我可以按住Ctrl键并重复其他键的唯一另一个命令是Ctrl + b ;,它可以在两个窗格之间不断旋转光标。

– joelostblom
17年2月16日在2:58

#3 楼

您可以拥有的最精确的控制是直接使用命令swap-pane。这并不难做到:




ctrl-b q为您显示当前窗口中每个窗格的“ ID”-记住要交换的两个窗格。假设它们分别是3和5。

ctrl-b :激活tmux命令行。然后发出命令swap-pane -s 3 -t 5

请注意,键入命令时,您会自动完成。您也可以直接从tmux联机帮助页搜索命令的语法。这就是我学习swap-pane的语法的方式。