sublime text 的 smooth_scroll 仅对键盘滚动命令生效,鼠标滚轮需调系统设置、scroll_speed 和 animate_inert_panning 协同优化。

Sublime Text 没有鼠标平滑滚动动画,smooth_scroll 不影响鼠标滚轮,scroll_speed 只缩放步长,animate_inert_panning 仅对触控板/滚动条拖拽松手生效——别白改配置,先搞清它到底能动哪儿。
为什么 smooth_scroll 对鼠标滚轮完全没用
smooth_scroll 只作用于命令驱动的滚动:方向键、PageUp/PageDown、Ctrl+G 跳转等。它让这些操作在视觉上多走几帧中间位置,但仍是插值计算,不是 GPU 动画;对鼠标滚轮、触控板滑动、滚动条拖拽全部无效。
-
"smooth_scroll": true必须写在 Preferences → Settings 右侧(User)面板,且是布尔值;写成"true"(带引号)会被静默忽略 - 若已启用但无变化,检查是否被项目级
.sublime-project文件覆盖(里面可能写了"smooth_scroll": false) - 部分 Logitech/Synaptics 驱动会拦截或重写滚轮事件,导致 Sublime 根本收不到“慢速”指令
scroll_speed 是什么,调低就能“变平滑”?
scroll_speed 控制的是“每次滚轮动作移动多少行”,值越小,步长越细,视觉上更细腻——但它仍是瞬时跳变,没有缓动动画。它只对鼠标滚轮和滚动条拖拽生效,不影响键盘操作。
- 推荐范围是
0.3~0.5;低于0.1会导致滚动条拖拽响应迟钝、卡顿 - 它和
animate_inert_panning正交:一个管“每步多大”,一个管“松手后滑不滑”,可以共存 - Windows/macOS/Linux 全平台生效,但若外接鼠标驱动启用了“超速滚动”,会直接覆盖该参数效果
animate_inert_panning 真正起效的三个前提
这是 Sublime 唯一能带来“滑行动画感”的设置,但它只在两个场景下工作:按住滚动条拖拽后松手、触控板快速滑动后松手。要让它真动起来,必须同时满足:
-
"animate_inert_panning": true(注意是布尔值,不能加引号) -
"animation_enabled": true(缺了它,所有动画包括惯性都静音) -
"hardware_acceleration": "opengl"(尤其 Intel 核显或 macOS 上,能明显改善滑动帧率)
如果只开了 animate_inert_panning 却没滑行,大概率是后两者没配齐。另外,部分 Logitech 驱动会吃掉触控板 velocity 事件,需关闭「Infinite scrolling」类选项。
鼠标滚轮还是生硬?先调系统,不是 Sublime
Sublime 不处理原始滚轮事件,它只接收系统传来的“滚动 N 行”指令。所以第一步永远是操作系统级调整:
- Windows:设置 → 设备 → 鼠标 → “一次滚动的行数”,建议设为
1或2 - macOS:系统设置 → 鼠标 → 滚动速度拉到中间偏右;顺带执行
defaults write -g NSScrollAnimationEnabled -bool true - Linux(GNOME):设置 → 鼠标和触摸板 → 滚动速度;若不够用,装
imwheel,把 Button4/Button5 后的数字从3改成4~6 - 罗技/雷蛇用户务必关掉驱动里的“智能滚动”或“超速滚动”,否则 Sublime 滚动会忽快忽慢
真正影响手感的,从来不是编辑器里那一行 "smooth_scroll": true,而是系统滚轮灵敏度 + scroll_speed 缩放 + animate_inert_panning 惯性三者叠加的结果。漏掉任何一层,都会让你觉得“怎么调都不顺”。











