Answers:
就像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应该为我们实现的一个功能,因为几乎不可能正确地执行脚本,但是我不知道如何实际上可以以一种不混淆的方式完成它(请参阅我的第一句话) )。