我的 tmux 窗口中有 3 个窗格:
--------------------------
| | 2 |
| | |
| 1 |----------|
| | 3 |
| | |
--------------------------
窗格 1 和 2 有vim
. Pane 3 运行我正在开发的 cli。有时我想比较窗格 1 和 2,所以我想隐藏窗格 3:
--------------------------
| | |
| | |
| 1 | 2 |
| | |
| | |
--------------------------
然后再次返回窗格 3。我不想删除窗格 3,因为我已经在那里设置了一些东西,并且不想再次设置它们。
- 有没有类似的东西
PREFIX + z
可以缩放窗格 2 但不触摸窗格 1?或者 - 有没有办法快速隐藏窗格 3 并在需要时将其恢复?
答案1
使用break-pane
和join-pane
命令。有关man tmux
详细信息、选项和用法,请参阅。
隐藏窗格 3:
选择窗格3
并输入Prefix- :break-pane -dP
。
tmux
会将窗格发送3
到后台窗口(标志),并在窗格 2(标志)-d
中打印一些有关它的信息。-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
拆分窗格( ) 并使用标识符连接(源)窗格 ( ) 。您也可以选择删除或标识符。另请注意,tmux 存储命令行历史记录,可以通过- -或- - -方便地访问。2
-v
-s
1:2.0
session
pane
Prefix:UpPrefix:ctrlp
您可能需要一些时间来掌握它的窍门,但是一旦掌握了它,您一定能够想出对您来说方便的自定义键绑定。
这个问题包含一些有用的信息和技巧,可以改善您的工作流程。
答案2
我现在这个问题已经快 5 年前了,但我刚刚发现它是因为我想做类似的事情,并且我想出了以下键绑定,这要归功于用户78291的回答:
bind-key ! break-pane -d -n _hidden_pane
bind-key @ join-pane -s $.0
这样,我可以用来Prefix!隐藏当前窗格并将Prefix@其恢复。好的部分是我可以通过这种方式隐藏多个窗格。
它远非完美,但它可以很好地隐藏窗格并将其带回来。
更新:修复窗格索引
答案3
一个想法:在 tmux 中运行 tmux。
原始设定:
窗格 1 和窗格 2;并排。正常在窗格 1 中运行 vim。
在窗格 2 中,再次运行 tmux 并创建两个窗格(这次一个在另一个之上)。然后在窗格 2.1 中运行 vim,在窗格 2.2 中运行 CLI。这应该允许您使用第二个 Vim 实例全屏显示窗格 2.1,从而产生您想要的行为。
答案4
我知道这实际上并没有隐藏您正在处理的窗格,但我试图这样做是为了阻止 tmux 向选定的窗口发送常用命令,并得到一个更简单的解决方案。
如果您不想在视觉上隐藏该窗格,而只是想停止进入该窗格的任何输入。一种情况可能是您想要将命令发送到 5 个打开的窗格,但不想将其发送到其中的 2 个。
在此用例中,您可以
ctrl + s
在不希望命令转到的窗格上执行操作(ctrl + s
锁定窗格的所有输入)。
完成后,按ctrl + c
返回。
笔记:不要ctrl + q
在命令后按,因为它将运行该屏幕上的所有命令。ctrl + c
不会这样做(在 Ubuntu 上尝试过)。