我的 tmux 窗口中有 3 个窗格:
--------------------------
| | 2 |
| | |
| 1 |----------|
| | 3 |
| | |
--------------------------
Run Code Online (Sandbox Code Playgroud)
窗格 1 和 2 具有vim
. 窗格 3 运行我正在开发的 cli。有时我想比较窗格 1 和 2,所以我想隐藏窗格 3:
--------------------------
| | |
| | |
| 1 | 2 |
| | |
| | |
--------------------------
Run Code Online (Sandbox Code Playgroud)
然后再次带回窗格 3。我不想杀死窗格 3,因为我已经在那里设置了一些东西并且不想再次设置它们。
PREFIX + z
可以缩放窗格 2 但不触摸窗格 1?或者小智 98
使用break-pane
和join-pane
命令。man tmux
有关详细信息、选项和用法,请参阅。
隐藏窗格 3:
选择窗格3
并输入Prefix- :break-pane -dP
。
tmux
将窗格发送3
到背景中的窗口(-d
标志)并在窗格 2(-P
标志)中打印有关它的一些信息。默认情况下,您会看到类似1:2.0
(意思是:session:window.pane
。点击q继续工作。1
1通过一些练习,您将能够删除-P
标志,因为您可以预测session:window.pane
三元组:session
默认为当前会话和pane
默认为0
whilewindow
将是下一个空闲窗口标识符。
取回窗格 3:
为了获得面板3
和背面布局,选择窗格2
和问题Prefix-:join-pane -vs 1:2.0
告诉tmux
给拆分窗格2
垂直(-v
),并加入(来源)窗格(-s
与标识符)1:2.0
。或者,您可以删除session
或pane
标识符。另请注意,tmux 存储命令行历史记录,可通过Prefix- :-Up或Prefix-方便地访问: - ctrl-p。
您可能需要一些时间来掌握它,但是一旦掌握,您肯定能够想出方便的自定义键绑定。
这个问题包含一些有用的信息和技巧,可以改善您的工作流程。
小智 6
一个想法:在 tmux 中运行 tmux。
原始设置:
窗格 1 和窗格 2;并排。正常在窗格 1 中运行 vim。
在窗格 2 中,再次运行 tmux 并创建两个窗格(这次一个在另一个之上)。然后在窗格 2.1 中运行 vim,在窗格 2.2 中运行 CLI。这应该允许您使用 Vim 的第二个实例全屏显示窗格 2.1,从而产生您想要的行为。
小智 6
我现在这个问题已经快 5 岁了,但我刚刚找到它是因为我想做类似的事情,并且由于user78291 的回答,我想出了以下键绑定:
bind-key ! break-pane -d -n _hidden_pane
bind-key @ join-pane -s $.1
Run Code Online (Sandbox Code Playgroud)
这样,我可以使用Prefix!隐藏当前窗格并将Prefix@其带回来。好的部分是我可以通过这种方式隐藏多个窗格。
它远非完美,但它可以很好地隐藏窗格并将它们带回来。