如何在分离/重新连接 GNU screen 后保持窗口分割

如何在分离/重新连接 GNU screen 后保持窗口分割

我在 Ubuntu 服务器中使用屏幕。

我的屏幕分为四个区域,每个区域显示不同的窗口。

问题是,当我分离(或者重新连接)时,会出现四个窗口,但只有一个区域,我必须C-a S重新进行一遍吗?

重新连接时如何保持屏幕分割?

答案1

屏幕常见问题解答

(隐含的问题是“如何在分离后保留分割窗口?”)

简短的回答是你不能。详细的回答是你可以伪装。

分割是显示器的一个属性。管理您的屏幕会话的进程实际上并不知道它们;只有显示会话的单个进程才知道。因此,屏幕会话无法记住分割,因为它不知道它们,而且一旦您分离,知道它们的进程就会退出。

破解方法是使用嵌套屏幕会话。启动一个会话并为其提供一些您不常用的转义序列(或者完全禁用其转义字符)。将您常用的分离键序列绑定到此屏幕会话。现在,启动或附加到您的主屏幕会话。您的所有工作都将在内部会话中完成,并且您可以拆分显示。但是,当您分离时,分离的将是外部会话,因此内部会话中的拆分将保留。

假设您使用默认转义字符 Ca,则您的备用 screenrc 应该包含:

escape ""
bindkey ^ad detach

答案2

我发现如果您已经设置了一些窗口并且想要保存它们,您可以这样做:

Ctrl-a
:
layout save default

然后,当您分离并重新连接会话时,布局应该恢复。

适用于 Screen 版本 4.00.03jw4 (FAU) 2-May-06 (Ubuntu 12.04 & 12.10)

您可能还想创建一个守护进程会话,如下所示:

$> screen -dmSU mysession

然后通过调用以下命令让它始终可用:

$> screen -r mysession

答案3

只需将此行添加到您的~/.screenrc

# This line makes Detach and Re-attach without losing the regions/windows layout
layout save default

答案4

看起来tmux是的。这是一个新的多路复用器项目,灵感来自屏幕,但从头开始编码并遵循 BSD 许可。

(如果我的英语读起来不舒服请见谅:-°)

相关内容