【问题标题】:Tmux: how to restore layout after changing it with select-layout or next-layout?Tmux:如何在使用 select-layout 或 next-layout 更改布局后恢复布局?
【发布时间】:2014-03-21 18:08:08
【问题描述】:

在开始一个新的 tmux 会话后,我通常会在默认窗口中打开多个窗格,然后使用 resize-pane 命令手动调整它们的大小(当然是通过快捷方式)。

完成一些工作后,我到达了一个点,或者有某种输出,我想快速并排垂直或水平地查看。所以我使用 select-layout 或 next-layout 命令。

但是,一旦我完成了这些视图,我想回到我最初设置的布局。有什么命令/程序可以让我这样做吗?

我不仅似乎无法恢复到我的原始布局,而且我似乎也无法通过手动调整大小来做到这一点。

【问题讨论】:

    标签: terminal tmux


    【解决方案1】:

    从 v2.1 开始,Tmux 现已获得此功能(请参阅 CHANGES):

    * 'select-layout' understands '-o' to undo the last layout change.

    【讨论】:

      【解决方案2】:

      您可以使用display-message捕获当前窗口布局

      layout=$( tmux display-message -p "#{window_layout}" )
      

      请注意,这适用于 tmux 1.7 或更高版本。如果您使用的是旧版本,您可以尝试从 list-windows 命令中提取布局字符串。一种方法如下:

      layout=$( tmux list-windows | sed -e 's/^.*\[layout \(\S*\)].*$/\1/' )
      

      现在您可以使用该变量来稍后恢复您的布局,使用select-layout

      tmux select-layout "$layout"
      

      【讨论】:

      • 感谢您的回答。它不太奏效,但帮助我进行了进一步的探索,我发现了什么对我有用。我不得不用这个替换第一行: layout=$(tmux list-windows | sed -e 's/^.*[layout (\S*)].*$/\1/') 然后我可以使用恢复布局的第二个命令。您介意扩展 display-message 方法的工作原理吗?在我的情况下,显示消息只打印一个字符串“window_layout}”(我的 tmux 是 1.6 版,在 ubuntu 12.04 上,FWIW)
      • 啊,对不起。我以为我是少数仍在使用 1.6 的人之一 :) display-messages 直到更高版本才获得处理 #{...} 样式变量的能力。 #{window_layout} 将为您提供当前窗口的布局字符串,而不必从 list-windows 的输出中解析相同的字符串。
      • 谢谢。我已经编辑了答案以添加旧版本的解析选项。看来我该升级了。
      • 我已恢复您的编辑,因为它在我有机会投票接受之前被拒绝(为什么?)。
      • 再次感谢。我不知道拒绝背后的原因。我也没有收到通知。
      猜你喜欢
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-21
      • 2016-07-18
      • 1970-01-01
      相关资源
      最近更新 更多