程序运行时是否可以停止 xterm 滚动

程序运行时是否可以停止 xterm 滚动

我正在尝试让 xterm 满足我对终端仿真器的要求。我想要的大多数功能都内置在 xterm 中,但有一个功能我无法使用。我想问一下是否有人知道是否可以在 xterm 中实现这一点。

那么,当下面的程序正在运行并产生输出时,是否可以不滚动 xterm 窗口的内容?也就是说,xterm 窗口的内容将是静态的。

有类似的问题,但我没有找到一个考虑这个确切问题的问题。需要说明的是,我并不是要求在程序输出某些内容时阻止向下滚动(选项)。我也不是在问如何使用软件流控制和scrollTtyOutput停止终端窗口和程序。此外,例如,管道传输到 less 不是我想要的建议。我想知道上述功能是否在 xterm 中实现,或者是否存在某种产生相同结果的黑客手段。C-sC-q

我不熟悉 xterm 的内部结构,但让我们假设它的工作原理如下:有一个输出缓冲区(用于滚动),假设有 1000 行,以及一些索引变量 i,其中包含最后一个可见行的行号。假设我们有一个滚动的 40 行窗口,因此显示行 50-10(i=10)。假设在 xterm 中运行的程序输出 5 行,我们现在看到相同索引 50-10 的行,但它们的内容滚动了 5 行。这就是 xterm 的工作方式。如果您没有滚动窗口,它会显示相同的行(就偏移量而言)。我希望的是,偏移量变量 i 会随着新行的打印而增加,从而产生终端窗口的静态视图。

答案1

使用以下命令启动终端

xterm -si

抑制滚动。但是,如果您希望在某一时刻也看到输出的结尾,则添加-sk会很有意义。当您按任意键时,此选项会导致屏幕底部滚动。当然,这意味着您必须在xterm启动时决定此行为。您无法打开和关闭-si已在运行的终端。

相关内容