我在 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 许可。
(如果我的英语读起来不舒服请见谅:-°)