Tmux:如何在使用select-layout或next-layout更改布局后恢复布局?

Yud*_*oza 14 terminal tmux

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

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

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

我不仅似乎无法恢复到原始布局,我似乎无法通过手动调整大小来实现.

sjb*_*jbx 16

自v2.1起,Tmux现已获得此功能(请参阅更改):

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

  • 如果您评论您的解决方案而不仅仅是从 CHAGELOG 中复制粘贴,那就太好了 (2认同)

che*_*ner 15

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

layout=$( tmux display-message -p "#{window_layout}" )
Run Code Online (Sandbox Code Playgroud)

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

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

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

tmux select-layout "$layout"
Run Code Online (Sandbox Code Playgroud)