我在 OS X 上一直使用 GNU Screen,主要在 SSH 连接的服务器端运行,以便在执行多任务时保持持久性。优点在于,如果我断开连接,我的所有虚拟屏幕都会恢复,几乎不需要任何工作。我相信我们都知道这一点。
我经常抱怨无法使用 Shift+PgUp 和触摸板在每个虚拟屏幕上滚动。我知道设置更改可以解决这个问题如果您不会在会话中切换屏幕,但每个屏幕不会像终端中的选项卡那样保留自己单独的历史记录。显然,为了做到这一点,每次切换时,屏幕都必须存储大量数据并通过连接传输。这很浪费,而且延迟会非常糟糕。
可行的方法是使用某种智能客户端客户端来访问 Screen 或 tmux 的远程实例,它可以智能地分别管理每个虚拟屏幕的回滚。有这样的解决方案吗?哎呀,即使是简单地在本地管理到同一台服务器的多个 ssh 会话(每个会话都运行 Screen(只有一个虚拟屏幕))的好方法也会有很大的改进,但前提是它只能像 screen -d -r 那样工作,但我想不出一种方法来让它透明。另一个潜在的选择是终端程序,它可以自动与新的命名单屏 screen/tmux 会话建立 SSH 连接,并记住会话集,以便可以轻松恢复它们。