Sublime Text 4.4+ 中 caret_blinking 已废弃,真正禁闪需设 "caret_style": "solid" 并清零 caret_extra_top、caret_extra_bottom、caret_extra_width;缺一不可,否则仍可能微动或抖动。

Sublime Text 4.4+ 中,caret_blinking 已彻底废弃,设为 false 完全无效;真正禁闪只有一条路径:"caret_style": "solid",且必须配合清零三项尺寸参数。
为什么 caret_blinking: false 没用
这个键名从 ST4.4 开始就不在配置解析白名单里,写了等于没写。它不是被“忽略”,而是压根不进解析流程。旧教程里沿用的写法,基本都针对 ST3 或更早分支——而即便在 ST3 中,它也只对已淘汰的 "caret_style": "blink" 起作用,且效果不稳定。
-
caret_blinking不是开关,而是动画模式的附属字段,单独存在无意义 - 系统级光标设置(如 macOS 的可访问性选项)会覆盖该字段,尤其在远程桌面或高 DPI 缩放下完全失效
- 如果你看到光标还在动,别调这个,直接换
caret_style
caret_style 哪些值真能禁闪
不是名字像“不闪”就真的不闪。每个值走不同渲染路径,是否闪烁取决于是否绕过帧动画调度器:
-
"solid":唯一原生静态模式,纯色矩形直出,不参与任何帧循环,真正不闪 -
"phase"和"smooth":仍有透明度/亮度渐变,底层仍走动画定时器,只是“看起来不明显” -
"block":非官方稳定支持值,部分主题下渲染错位,且仍依赖系统光标刷新逻辑 -
"wide"、"underline"、"blink":全部支持闪烁,且caret_extra_width对它们多数无效
最小必要配置:四行缺一不可
只写 "caret_style": "solid" 在多数场景下能停闪,但高 DPI、远程桌面、某些 UI 主题下会因像素对齐异常导致微动或抖动——这不是 bug,是残留尺寸参数触发的视觉残留。
"caret_style": "solid""caret_extra_top": 0"caret_extra_bottom": 0"caret_extra_width": 0
这四者必须同时存在。漏掉任意一个,Sublime 就会启用状态刷新机制,光标可能上下跳动、边缘模糊,甚至被误判为“还在闪”。
改完还是闪?先排查三类干扰源
配置写对、JSON 格式合法、保存成功后仍闪烁,大概率是外部因素劫持了光标渲染:
-
插件覆盖:如
BlockCursor、Vintageous、FocusMode会在运行时重写光标样式,临时禁用插件验证 -
UI 主题强制重载:Material Theme、Ayu 等主题常在 theme 文件中硬编码
caret相关样式,建议先切回"theme": "Default"测试 -
硬件加速冲突:若启用了
"gpu_window_buffer": true,"smooth"或"block"易出滚动残影;"solid"不受影响,但需确认没混用"wide_caret": true(它会让"solid"退化回竖线并恢复闪烁)
所有修改只生效于 Preferences → Settings 右侧「User」面板;左侧 Default 面板改了无效,且升级后会被覆盖。保存即生效,无需重启,但若用了主题类插件,可能需要重载主题或重启 Sublime 才彻底清除缓存。


















