我想使用screen
(从 GNOME 终端,通过ssh
),就像我使用不带 的 GNOME 终端一样screen
,或者尽可能接近它。具体来说:
在 GNOME 终端中,我可以使用鼠标滚轮、滚动条或Shift+ PgUp/向后滚动PgDn。在 中screen
,我必须进入复制模式(Ctrl+ A,[)才能向后滚动(鼠标滚轮在此之后起作用)。滚动行为可以更改(看这个答案和这个答案)但是这个解决方案有以下缺陷:
less
当我使用或打开文件时vim
,我可以使用鼠标滚轮在编辑器“窗口”上方滚动并查看终端的先前内容。- 当我关闭编辑器时,其内容保留在回滚缓冲区中(有时有多个副本)而不是消失。
可以使用更改此行为altscreen on
(请参阅这个答案)但唯一的影响是,当编辑器关闭时,旧的终端内容是附加的到终端窗口中的回滚缓冲区,这样当我使用鼠标滚轮向后滚动时,我仍然可以看到编辑器的废话。
这是否意味着不可能进行良好的滚动screen
?基本上,我想要的就是能够像复制模式一样滚动(使用鼠标滚轮,如果可能的话使用滚动条),但不必进入复制模式。
答案1
也许你无法得到你所要求的。
从终端的角度来看:
screen
是一个全屏(无双关语)应用程序,就像vi
or一样less
。- 终端实现滚动和备用屏幕。
- 当终端处于备用屏幕模式时,它不会像在正常模式下那样添加到其回滚区域。
- 在 gnome-terminal 中(也许还有其他一些 - xterm 中的一个选项),终端将向上/向下箭头键发送到应用当它处于交替屏幕模式时。
- 什么时候不是在备用屏幕模式下,您的终端将滚动可见屏幕和终端的回滚区域,而不会通知其中运行的应用程序。
从screen
:
screen
才不是知道关于鼠标或滚动的任何事情;它将该信息传递给内部运行的应用程序screen
。screen
模拟备用屏幕;它无法访问终端的备用屏幕。- 您可以禁用终端的备用屏幕功能,如问题中所示。
简而言之,由于screen
没有任何方法可以访问终端的回滚,因此您可用的选择是终端提供的选项。