有两种方法可以使屏幕滚动。第一种方法,称为“硬滚动”,是将文本保留在显存中不变,但更改视口原点。这非常快。第二种方法,称为“软滚动”,涉及向上或向下移动所有屏幕文本。这慢得多。内核控制台驱动程序将从显存顶部开始写入文本,一直到底部,然后将底部部分复制到顶部,并继续,一直使用硬滚动在屏幕上显示正确的部分。您可以使用 Shift-PageUp(灰色 PageUp 键)向上滚动到显存顶部,并使用 Shift-PageDown(灰色 PageDown 键)向下滚动,假设使用默认键盘映射。因此,回滚量受限于您拥有的显存量,并且您无法增加此量。如果您需要更多的回滚,请使用一些缓冲文本的程序,例如 less
或 screen
- 通过使用磁盘上的缓冲区,您可以回溯到上周的操作。(可以设置 xterm
的回滚量,方法是在 .Xresources
中添加类似 XTerm*saveLines: 2500
这样的行。)
在更改虚拟控制台时,旧 VT 的屏幕内容被复制到内核内存,而新 VT 的屏幕内容从内核内存复制到显存。仅复制可见屏幕,而不是所有显存,因此切换控制台意味着丢失回滚信息。
有时,硬滚动是不可取的,例如,当硬件无法更改视口原点时。第一个例子是盲文机,它会在盲文中呈现显存顶部的内容。有一个内核启动时选项 no-scroll
,用于告诉控制台驱动程序不要使用硬滚动。请参阅 bootparam(7)。