使屏幕像终端一样工作(滚动 + 交替屏幕)

ond*_*fka 6 gnu-screen terminal scrolling gnome-terminal

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

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

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

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

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

Tho*_*key 4

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

从终端的角度来看:

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

screen

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

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