在两个窗口之间镜像窗格

Wil*_*ris 17 tmux

是否可以在单个 tmux 会话的两个不同窗口中显示相同的窗格?

我的主窗口中通常有一个水平分割,顶部窗格中有 vim(大约终端高度的 80-90%),底部窗格中有一个命令行,我在其中运行我正在处理的程序。因为底部窗口太小,经常看不到错误输出,使用tmux的键盘快捷键往回滚动越来越烦人。我想让我的第二个窗口附加到同一个窗格,这样如果我需要查看更多错误输出,我可以快速切换到第二个窗口而无需处理回滚。这可能吗?

(我想一种后备方法是使用 tee 之类的东西将标准输出写入日志文件并在我的第二个窗口中将其拖尾。不过我希望这不是必需的)

pet*_*rph 12

恐怕这是您无法做的事情之一tmux(我希望在不同大小的多个空间中显示一个窗格的问题是主要原因)。但是,有几种方法可以解决这个问题 - 所有方法都基于将某些操作绑定到某些组合键。由于很大程度上取决于您使用的布局,因此只需一个带有您提到的两个窗格的简单布局就可以让您的生活轻松

  1. rotate-window - 它只会交换窗格,从而为您提供 80%-90% 的命令输出(以及 ViM 的小窗口)。

  2. break-pane 对比 join-pane -v -p <preview_percentage> -t !

  3. pipe-panecommand是无缓冲的重定向到一个命名管道(与创建即文件系统节点mkfifo) -然后使用tail -f该命名管道中的其他窗格中。

  4. 将输出通过管道传输到less,它也具有跟随模式tail(至少是 GNU模式)。

  5. resize-pane -Z在较小的面板上将在完整终端上放大它。随后的取消缩放将使其保持活动状态,因此需要一些技巧才能使其舒适地工作。

  • 顺便说一句 - “我认为一个窗格在不同大小的空间中显示的问题是主要原因”这可能是实现它的复杂性的一个因素,但 tmux 确实通过分组支持在窗口级别的相同内容会话 http://unix.stackexchange.com/questions/24274/attach-to-different-windows-in-session。它只是将下面的填充添加到较小的窗口中。理论上,窗格镜像可以以相同的方式完成。 (2认同)

Kus*_*nda 8

默认情况下,您可以通过按Prefixz(默认前缀是Ctrl+B)来切换窗格的“缩放状态” 。

这将使当前窗格(例如,您的命令行窗格)占据整个窗口。再次按Prefixz可“取消缩放”窗格。