我可以将tmux窗格设为“粘性”吗?


9

是否可以使一个或多个tmux窗格“发粘”?即这些窗格将出现在我的tmux会话中当前可用的所有窗口中吗?

Answers:


5

这个邮件列表上出现的每一次 一个 同时

不,不可能在一个以上的窗口中有一个窗格。

tmux的内部设计允许窗口成为多个会话,但是窗格只能属于一个窗口。


3

就像Chris所说的那样,没有内置的功能允许将窗格标记为粘性,并且这种方式是有道理的,因为在所有其他窗口上如何处理所有窗格的重组尚不明显当您在当前窗口中切换某些特定窗格的“粘性”时。以一种用户看不见的方式弄乱布局通常会给用户带来糟糕的体验。

您可能会发现像这样有用的绑定:

bind -n M-k move-pane -t ':+'
bind -n M-j move-pane -t ':-'

对于习惯于J和K左右移动的Vim用户而言,这将非常友好。有了此绑定,tmux将介入并吞下Alt+K并将Alt+J活动窗格分别移至右侧和左侧窗口。

它将拉动您当前所在的窗口,并将其填充到相邻的tmux窗口中。您甚至可以指定将窗格插入目标窗口布局的索引。有关可以赋予的其他选项,请参见手册页move-pane

这样,当然仍然存在布局更改(源窗口隐式限制在一个窗格中,源窗口中隐式限制在一个窗格中,并且也直接观察到一个目标窗格),但是它的控制要多得多”,并且只要您将注意力集中在旨在保持“粘性”的窗格上,就能或多或少地实现您的目标。

我仍然觉得这不尽人意,因为有必要将意图集中在“粘性”窗格上的窗格聚焦,如果要使粘性窗格始终可见但却从未真正使焦点聚焦,那么很难快速发出此命令。

有可能提出稍微复杂一些的tmux脚本,该脚本为要粘贴的窗格使用特殊名称,并为您手动安排内容。不过,这听起来像是在痛苦。

招待的最后一个选择是使用嵌套的tmux:将粘性窗格放在父tmux中,让另一个窗格包含一个tmux,该tmux承载其余终端。这样,您可以自由地在孩子tmux中切换。问题是您需要提出一些可行的建议,因为默认情况下,您需要按两次前缀键才能完成相同的任务。也很烦。我已经通过任何嵌套的tmux巧妙地绑定了“隧道”,但是这些低效的消息传递方案的逻辑很快变得难以管理。这样做的局限性在于,此处的“粘滞窗格”必须跨越整个高度或宽度,不能是一个角。

总之,我想说这是tmux应该为我们实现的一个功能,因为几乎不可能正确地执行脚本,但是我不知道如何实际上可以以一种不混淆的方式完成它(请参阅我的第一句话) )。


2
对于它的价值,我认为与其允许使用粘滞性,还不如说它是粘滞性的,因为确实很难定义对其他窗口的处理方式,应该有一个克隆窗格,那些真正想要粘滞性的人可以利用它来获得相同的结果。坦率地说,正是我一直在寻找的克隆窗格也将我引到了这里。那将是个好功能。
Tommi Kyntola 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.