Sublime Text 的鼠标滚轮无真正平滑滚动动画,smooth_scroll 仅影响命令驱动滚动,scroll_speed 控制滚轮步长,animate_inert_panning 需配合 animation_enabled 和 hardware_acceleration 才生效,系统级设置才是滚轮灵敏度主因。

Sublime Text 没有真正意义上的鼠标滚轮平滑滚动动画,所谓“平滑”是系统设置、scroll_speed 和 animate_inert_panning 协同作用的结果,不是开个开关就能有的帧动画效果。
为什么改了 smooth_scroll 对鼠标滚轮完全没用
smooth_scroll 只影响命令驱动的滚动行为,比如 Ctrl+G 跳转、方向键翻页、PageUp/PageDown —— 它让这些操作在视觉上多走几帧中间位置,但仍是计算插值,不是 GPU 动画。对鼠标滚轮、触控板滑动、滚动条拖拽全部无效。
- 写错位置(比如被项目设置覆盖)或 JSON 格式错误(末尾多逗号、中文引号),会导致整个用户配置加载失败,所有自定义设置回退默认
-
"smooth_scroll": true必须写在 Preferences → Settings 的右侧(User)面板里,且只能是布尔值;写成"true"(带引号)会被静默忽略 - 别信网上搜到的
editor.smoothScrolling,Sublime 完全不认识这个字段,写了等于白占一行
scroll_speed 是什么,怎么调才不翻车
scroll_speed 控制的是“每次滚轮动作移动多少行”,值越小,步长越细,视觉上更细腻——但它仍是瞬时跳变,没有缓动动画。它只对鼠标滚轮和滚动条拖拽生效,不影响任何键盘操作。
- 推荐值范围是
0.3~0.5;低于0.1会导致滚动条拖拽响应迟钝、卡顿 - 它和
animate_inert_panning正交:一个管“每步多大”,一个管“松手后滑不滑”,可以共存 - Windows/macOS/Linux 全平台生效,但若外接鼠标驱动(如 Logitech Options)启用了“超速滚动”,会直接覆盖该参数效果
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 行”指令。90% 的“滚轮太猛”问题,根源在系统层:
- Windows:设置 → 设备 → 鼠标 → “一次滚动的行数”,建议设为
1(细腻)或5(快览) - macOS:系统设置 → 鼠标 → 拖动“滚动速度”滑块;顺带执行
defaults write -g NSScrollAnimationEnabled -bool true启用系统级惯性 - Linux(GNOME):设置 → 鼠标和触摸板 → 滚动速度;KDE 用户可用
xinput set-prop "Your Mouse" "libinput Scroll Method Enabled" 0 1
外接鼠标驱动(如 Logitech G HUB、Razer Synapse)常默认劫持 Ctrl+滚轮,务必关掉「全局快捷键」或「智能滚动」类功能——否则 Sublime 收不到原始事件,调什么都没用。

















