Sublime Text 的平滑滚动依赖 animate_inert_panning、scroll_speed 和 animation_enabled 三者协同,仅对触控板/滚动条拖拽松手生效;smooth_scroll 仅影响命令跳转,鼠标滚轮响应由系统设置主导。

Sublime Text 没有真正意义上的平滑滚动动画,所谓“平滑”只是视觉节奏优化和惯性滑行的组合效果,不是 VS Code 那种 editor.smoothScrolling。开错配置项或混用参数反而会让滚动更卡、甚至失效。
怎么启用 animate_inert_panning(触控板/滚动条拖拽惯性滑行)
这是 Sublime 唯一能带来“滑出去”手感的设置,仅作用于按住滚动条拖拽后松手、或触控板快速滑动后松手这两个场景。
- 在
Preferences → Settings右侧用户配置中添加:"animate_inert_panning": true - 必须同时开启
"animation_enabled": true,否则该设置静默无效 - 建议搭配
"hardware_acceleration": "opengl",尤其 Intel 核显用户能明显改善帧率 - 设为
false时松手即停;设成"true"(带英文引号的字符串)会解析失败,静默忽略 - 对鼠标滚轮、方向键、
Ctrl+G跳转完全无效——别指望它解决滚轮生硬问题
怎么调 scroll_speed(控制滚轮/滚动条步长细腻度)
scroll_speed 不是动画,只是缩放每次滚轮或拖拽滚动条时移动的行数,值越小越“细”,但低于 0.1 会导致拖动卡顿、响应迟钝。
- 添加到用户配置:
"scroll_speed": 0.4(推荐范围0.3–0.6) - 它只影响鼠标滚轮和滚动条拖拽,不影响键盘导航
- 和
animate_inert_panning正交:一个管“每步多大”,一个管“松手滑不滑” - 别和系统设置冲突:Windows 的“一次滚动的行数”、macOS 的“滚动速度”滑块,优先调这些
为什么 smooth_scroll 开了没反应
smooth_scroll 是个被严重误解的配置项。它只让 Ctrl+G、PageDown、方向键等命令驱动的跳转行为“分多步走”,不是插值动画,且对鼠标滚轮完全无效。
- 启用方式:
"smooth_scroll": true(布尔值,不能加引号) - 常见失效原因:项目级
.sublime-project文件里写了"smooth_scroll": false,直接覆盖用户设置 - JSON 格式错误(比如末尾多逗号、中文引号)会导致整个用户配置加载失败,所有自定义项回退默认
- 别写
"editor.smoothScrolling": true——Sublime 完全不认识这个 key,写了等于白写 - 低端显卡或插件过多时,该动画可能直接降级为瞬时跳变,无任何提示
鼠标滚轮还是太猛?先查系统和外设驱动
Sublime 不接管原始滚轮事件,所有“滚轮太快/太慢”问题,90% 出在操作系统或鼠标驱动层。
- Windows:设置 → 设备 → 鼠标 → “一次滚动的行数”,建议设为
1(细腻)或5(快览) - macOS:系统设置 → 鼠标 → 滚动速度滑块;顺带执行
defaults write -g NSScrollAnimationEnabled -bool true启用系统级惯性 - Logitech Options / Razer Synapse:关闭“智能滚动”“超速滚动”“全局快捷键”类功能,它们会劫持
Ctrl+滚轮或吞掉 velocity 事件 - Linux(GNOME):设置 → 鼠标和触摸板 → 滚动速度;KDE 用户可用
xinput set-prop "Your Mouse" "libinput Scroll Method Enabled" 0 1
真正起效的组合往往只有两三个字段:animate_inert_panning、scroll_speed、animation_enabled,其他乱加的配置大概率互相干扰。硬件加速状态、外设驱动、系统滚动粒度这三点,比编辑器内任何设置都关键。

















