如何在Tmux中交换两个窗格?


207

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

'左窗格'<->'右窗格'

Answers:


303

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

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

-U-D是指“上”和“下”在窗格索引顺序(“向上”是相同的方向上Prefix o横跨窗格移动)。您可以使用display-panesPrefix q,默认情况下)查看窗格索引。


8
+1用于指定Prefix而不是假设所有人都会使用Ctrl-b
Aaron Wallentine

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

请参阅@kay的回复,以更广泛地使用swap-pane(以及标题中的问题答案)。
乔纳森

50

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

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


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

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

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

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

24

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

  1. ctrl-b q向您显示当前窗口中每个窗格的“ ID”-记住要交换的两个窗格。假设他们分别是3岁和5岁。
  2. ctrl-b :激活tmux命令行。然后发出命令swap-pane -s 3 -t 5

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.