如何在 tmux 中定位背景窗格

如何在 tmux 中定位背景窗格

在 tmux 窗口中,假设我有 3 个窗格,索引分别为 0、1 和 2。

如果我选择窗格2作为活动窗格,然后执行break-pane -d,它会将该窗格发送到后台。

为了重新调用该窗格,我会这样做join-pane -s $.0。即使隐藏窗格没有索引0,出于某种原因,$.0它也能工作。我似乎找不到任何文档来说明这意味着什么。tmux 手册页似乎表明可以src-pane是窗格 ID,但没有提到如何在后台定位窗格。

有人知道这是如何运作的吗?

答案1

没有背景,就没有“隐藏”。

break-pane -d,它会将该窗格发送到后台。

不是背景,而是新窗户. 一个新窗口被创建。

即使隐藏窗格没有索引0,但由于某种原因$.0它仍然有效。

该窗格确实有索引0 在新窗口中。这0是相对于窗口的窗格索引。它不同于%0,后者是唯一的窗格 ID,可能属于不同的窗格。

$指定一个窗口。它是具有最高编号的窗口的标记。它可能是用break-pane或创建的可能不会break-pane创建一个具有尽可能低的编号的窗口,因此如果已经存在的窗口在编号上有间隙,则$之后break-pane将不会引用您想要的窗口。


$TMUX_PANE识别窗格的一个可靠方法是从或获取其窗格 ID tmux display-message -pF "#{pane_id}";或者至少在调用时获取有关新窗口的信息break-pane

tmux break-pane -dP

您可以将其中任何一个存储在 shell 变量中,但将其存储在正在移动的窗格中的 shell 中则毫无意义。如果您找不到窗格,那么您将无法使用变量找到 shell。因此,最好使用另一个 shell 并在-s使用时指定目标窗格break-pane。请注意,如果您决定提供窗格 ID,break-pane -s那么最好首先存储 ID,而不是break-pane -P返回的内容。


幸运的是,break-pane你可以姓名新窗口:

tmux break-pane -d -n background

然后您可以说您已将窗格发送到background:) 要取回窗格:

tmux join-pane -s background

(假设你从那以后没有弄乱过新窗口break-pane,否则background,它标识了一个窗户,可能不足以确定正确的窗格)。


我似乎无法在任何地方找到任何关于这是什么意思的文献。

我所写的所有内容都是从我这里得到的man 1 tmux(尽管我承认文档很庞大,一开始可能看起来让人不知所措)。

相关内容