如何隐藏 tmux 窗格?

如何隐藏 tmux 窗格?

我的 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-panejoin-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默认为0whilewindow将是下一个空闲窗口标识符。

取回窗格 3:

要恢复窗格3和布局,请选择窗格2并发出问题Prefix通知:join-pane -vs 1:2.0以垂直tmux拆分窗格( ) 并使用标识符连接(源)窗格 ( ) 。您也可以选择删除或标识符。另请注意,tmux 存储命令行历史记录,可以通过- -或- - -方便地访问。2-v-s1:2.0sessionpanePrefix: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 上尝试过)。

相关内容