如何在 tmux 中将窗格推到左侧?

mer*_*011 7 tmux

假设我有三个垂直堆叠的水平窗格,我想将其中一个推到最左边,这样其他两个窗格仍然堆叠但在右边。

当前设置:

Pane 1
----------
Pane 2
----------
Pane 2
Run Code Online (Sandbox Code Playgroud)

所需的设置

Pane 1 | Pane 2
       | Pane 3
Run Code Online (Sandbox Code Playgroud)

执行此操作的正确命令是什么?我已经检查了手册页,但找不到这个特定的功能。

Jus*_*n C 9

我已经遇到这个问题好几次了,谷歌完全没用。幸运的是,手册页并不难读。记录下来可以在我下次忘记时快速提醒。

\n\n

您正在寻找的命令是move-pane.

\n\n

您必须运行它几次。我已经重新索引了窗格编号以匹配 tmux 的约定。由于窗格 0 最终与其他两个窗格接壤,因此您应该想象您正在移动窗格 1(0 的右侧),然后移动窗格 2(窗格 1 下方)。

\n\n
\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90                            \xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82Pane 0\xe2\x94\x82    PREFIX + :              \xe2\x94\x82Pane 0\xe2\x94\x82Pane 1\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4    move-pane -h -s 1 -t 0  \xe2\x94\x82      \xe2\x94\x82      \xe2\x94\x82\n\xe2\x94\x82Pane 1\xe2\x94\x82                            \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4                            \xe2\x94\x82Pane 2       \xe2\x94\x82\n\xe2\x94\x82Pane 2\xe2\x94\x82                            \xe2\x94\x82             \xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98                            \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98\n                                    \xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n            PREFIX + :              \xe2\x94\x82Pane 0\xe2\x94\x82Pane 1\xe2\x94\x82\n            move-pane -v -s 2 -t 1  \xe2\x94\x82      \xe2\x94\x82      \xe2\x94\x82\n                                    \xe2\x94\x82      \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4\n                                    \xe2\x94\x82      \xe2\x94\x82Pane 2\xe2\x94\x82\n                                    \xe2\x94\x82      \xe2\x94\x82      \xe2\x94\x82\n                                    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98\n
Run Code Online (Sandbox Code Playgroud)\n\n

以下是实现相同目的的粗略键绑定。只需确保聚焦于首先移动的窗格即可。

\n\n
bind-key g command-prompt -p "place below. select target window" "move-pane -h -t %%"\nbind-key G command-prompt -p "place right of. select target window" "move-pane -h -t %%"\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果您无法确定窗格编号,请记住该编号是按顺序分配的,该编号不会与任何特定窗格相关。使用键绑定在每次移动之前显示窗格编号。默认为PREFIX + q. 如果您的不同,您可以使用PREFIX + ?它来查找它。

\n


ren*_*don 6

如果我明白你的意思尝试:

PREFIX + %   # Create a vertical split
PREFIX + "   # In right pane create a horizontal split
Run Code Online (Sandbox Code Playgroud)

从只有一个窗格开始。默认情况下 PREFIX = Ctrl + b,在窗格之间移动,PREFIX + q然后键入窗格编号。

编辑:等等(我没有考虑到窗格已经存在),尝试这样做:

PREFIX + SPACE
Run Code Online (Sandbox Code Playgroud)

尝试多次,直到达到所需的安排。