让屏幕像终端一样工作(滚动+备用屏幕)

让屏幕像终端一样工作(滚动+备用屏幕)

我想使用screen(从 GNOME 终端,通过ssh),就像我使用不带 的 GNOME 终端一样screen,或者尽可能接近它。具体来说:

在 GNOME 终端中,我可以使用鼠标滚轮、滚动条或Shift+ PgUp/向后滚动PgDn。在 中screen,我必须进入复制模式(Ctrl+ A[)才能向后滚动(鼠标滚轮在此之后起作用)。滚动行为可以更改(看这个答案这个答案)但是这个解决方案有以下缺陷:

  1. less当我使用或打开文件时vim,我可以使用鼠标滚轮在编辑器“窗口”上方滚动并查看终端的先前内容。
  2. 当我关闭编辑器时,其内容保留在回滚缓冲区中(有时有多个副本)而不是消失。

可以使用更改此行为altscreen on(请参阅这个答案)但唯一的影响是,当编辑器关闭时,旧的终端内容是附加的到终端窗口中的回滚缓冲区,这样当我使用鼠标滚轮向后滚动时,我仍然可以看到编辑器的废话。

这是否意味着不可能进行良好的滚动screen?基本上,我想要的就是能够像复制模式一样滚动(使用鼠标滚轮,如果可能的话使用滚动条),但不必进入复制模式。

答案1

也许你无法得到你所要求的。

从终端的角度来看:

  • screen是一个全屏(无双关语)应用程序,就像vior一样less
  • 终端实现滚动和备用屏幕。
  • 当终端处于备用屏幕模式时,它不会像在正常模式下那样添加到其回滚区域。
  • 在 gnome-terminal 中(也许还有其他一些 - xterm 中的一个选项),终端将向上/向下箭头键发送到应用当它处于交替屏幕模式时。
  • 什么时候不是在备用屏幕模式下,您的终端将滚动可见屏幕和终端的回滚区域,而不会通知其中运行的应用程序。

screen

  • screen才不是知道关于鼠标或滚动的任何事情;它将该信息传递给内部运行的应用程序screen
  • screen 模拟备用屏幕;它无法访问终端的备用屏幕。
  • 您可以禁用终端的备用屏幕功能,如问题中所示。

简而言之,由于screen没有任何方法可以访问终端的回滚,因此您可用的选择是终端提供的选项。

相关内容