Sublime Text在macOS 14+掉帧需同步调整系统滚动倍率、禁用overlay_scroll_bars并强制OpenGL加速:执行defaults write -g com.apple.scrollwheel.scaling -float 1.8,设"overlay_scroll_bars": "disabled"和"hardware_acceleration": "opengl",再配"smooth_scroll": true与"scroll_speed": 2.3。

Sublime Text 在新版 macOS(14+)上滚动掉帧,不是编辑器卡了,而是系统级渲染路径被阻断——必须同步调整 macOS 系统设置 + Sublime 渲染配置,缺一不可。
macOS 系统滚动参数必须调到“非默认值”
新版 macOS 默认滚动倍率(com.apple.scrollwheel.scaling)是 0.75,但 Sublime 的 OpenGL 渲染层对这个值响应迟钝,尤其在 M 系列芯片 + Retina 屏组合下容易丢帧。
- 打开终端,执行:
defaults write -g com.apple.scrollwheel.scaling -float 1.8 - 立即刷新:执行
killall cfprefsd - 断开再重连鼠标,或注销当前用户——仅重启 Sublime 不生效
- 别用系统设置里的滑块调,它最大只到 1.0,达不到稳定帧率所需的阈值
必须禁用 macOS 原生浮动滚动条
Sublime 的 minimap 和视图滚动条会与 macOS 的 overlay_scroll_bars 冲突,导致 OpenGL 渲染管线反复切换上下文,直接引发掉帧或动画撕裂。
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
- 在 Sublime 的用户设置(
Preferences → Settings右侧)中加入:"overlay_scroll_bars": "disabled" - 同时建议开启:
"always_show_scroll_bar": true,避免滚动区域视觉反馈丢失 - 这个配置对触控板和 Magic Mouse 同样有效,但对第三方滚轮鼠标(Logitech/Razer)效果更明显
GPU 加速必须强制设为 OpenGL
新版 macOS 默认可能 fallback 到 Metal 或软件渲染,而 Sublime 的 minimap 和 smooth_scroll 动画严重依赖 OpenGL 上下文。Metal 后端目前未完全适配其滚动事件队列。
- 在用户设置中明确指定:
"hardware_acceleration": "opengl" - 不要写
"auto"或留空——Sublime 4147+ 在 macOS 14.5+ 上会误判为 Metal - 如果已装 Mos 或 LinearMouse,确保它们的“启用硬件加速”选项也打开,否则会劫持 OpenGL 上下文
smooth_scroll 配合 scroll_speed 才能稳住帧率
单独开 smooth_scroll 会让动画卡在 30fps 左右;必须配合 scroll_speed 把单次位移量压低,才能让 150ms 动画帧不被跳过。
- 用户设置中加这两项:
"smooth_scroll": true和"scroll_speed": 2.3 -
scroll_speed推荐范围是 2.0~2.5:低于 2.0 动画拖沓,高于 2.7 容易触发帧丢弃 - 别碰
scroll_wheel_multiplier——它只影响滚轮原始 delta 映射,在 macOS 上已被系统级 scaling 覆盖,设了反而冲突
真正掉帧的根因,往往藏在「系统滚动倍率 + overlay_scroll_bars + OpenGL 后端」这三者的协同失效里。改完任意一项都得重新测试滚动手感,而不是只看某一个配置是否“开了”。

















