在 XTerm 手册中:
向后滚动(计数 [,单位 [,鼠标] ])
此操作会向后滚动文本窗口,以便之前滚动到屏幕顶部的文本现在可见。 count 参数指示滚动的单位数(可以是页、半页、像素或行)。
(...)
令我惊讶的是,该单位可能是像素。我使用 XTerm 很长一段时间,但从未见过它有任何像素感知行为;相反,XTerm 的最小测量单位似乎是特点。 (例如,XTerm 可能的窗口大小是字符宽度/高度的倍数。它不会像其他终端模拟器一样显示 1/2 字符。)
因此,我开始测试并将这两个条目添加到我的~/Xresources
:
XTerm*vt100.Translations: #override\
Ctrl Shift <Key>k: scroll-back(1,pixel) \n\
Ctrl Shift <Key>j: scroll-forw(1,pixel) \n\
之后xrdb ~/Xresources
,我打开一个新的 XTerm 并尝试了
CtrlShiftk和
CtrlShiftj,但每次只滚动一行,而不是一个像素,这与 的行为相同scroll-{forw,back}(1,line)
。
因此问题是:什么是像素滚动动作的意思?它与什么不同线?
答案1
这可能看起来有些过分,但这些单位已经支持很长时间了(params_to_pixels
实现此功能的函数可以追溯到X11R41988 年)。同样,该功能已记录在 xterm 中手册页在那时候。
计算滚动量时,将数字(以像素为单位)除以字体高度。也许有人想让它处理分数行(为了更平滑的滚动),但在实现时,它“总是”是行。