终端平滑滚动
终端模拟器中的平滑、像素级滚动颇具争议:一些用户觉得它在视觉上更有帮助,配合触控板也更自然;而另一些人则认为它缓慢、糊、并且相比按行瞬间跳转会增加不必要的延迟。评论者回顾了曾支持平滑滚动的历史硬件终端,探讨了现代模拟器中的技术约束,并指出加入动画式滚动往往需要深层架构改动。许多人认为它应该保持为可选且高度可配置的功能——理想情况下可针对键盘、鼠标滚轮和触控板采用不同行为——以在响应性、可读性和个人偏好之间取得平衡。
总体反馈
- 人们的意见明显分裂:一部分喜欢平滑滚动,另一部分则在所有地方都将其关闭。
- 批评者把它形容为“糊糊的”、“迟钝的”、视觉上分散注意力,并且增加了不必要的延迟。
- 支持者认为它能提供更好的视觉连续性,帮助跟踪自己停在哪里,并且能让终端显得更现代、更舒适。
输入设备与使用场景
- 许多人只用 PgUp/PgDn、搜索或分页器来滚动终端,看不出任何好处;他们希望的是立即跳转。
- 触控板用户通常更喜欢像素级精确、连续的滚动,并且觉得平滑滚动时自己拥有“直接控制感”。
- 有几个人希望针对不同设备采用不同行为:触控板/鼠标平滑滚动,键盘滚动则离散跳转。
- 有些人特别喜欢在编辑器或 Vim 中使用平滑滚动,因为这样更适合逐行阅读;另一些人只关心用于查看命令输出的滚动回溯。
延迟、动画与默认设置
- 一个反复出现的反对意见是任何额外的延迟或动画时间,尤其是在滚动开始/结束时。
- 有些人会刻意关闭所有界面动画(桌面效果、浏览器过渡、CSS 动画),以最大化响应速度。
- 糟糕或缓慢的默认设置,以及在每台机器上都得重新关闭这些功能,是很大的挫败来源。
历史与技术背景
- 硬件终端(例如 VT100/220/320,以及各种兼容机)在几十年前就支持平滑滚动;但许多用户一直把它关掉,因为它太慢了。
- 讨论涉及这些老硬件是如何实现这一点的(CRT 控制器寄存器、滚动区域、VGA 起始地址技巧)以及其限制(整屏 vs. 区域)。
- 现代模拟器/终端原则上可以通过加速曲线、运动模糊或亚行滚动做得更好,但复杂性和边角情况让维护者望而却步。
现代软件行为
- 一些基于 Linux VTE 的终端已经支持平滑滚动;流行的 macOS 和 Windows 终端一般不支持。
- VS Code 和一些应用支持平滑滚动,但通常只针对鼠标滚轮或按页滚动,而不适用于单行移动;其行为可能很微妙,也容易让人困惑。
- 浏览器的情况各不相同:平滑滚动可能只适用于键盘导航,而触控板通常总是以平滑方式滚动。
附带话题
- 有些用户喜欢视觉花样(视差背景、复古 CRT 效果);另一些人则觉得文本后面的透明和图片会让人无法忍受地分心。
- 还有一小段关于如何表达不同意见而不显得被动攻击的元讨论。