直接设"caret_style":"solid"并清零三项尺寸参数是sublime text 4.4+唯一真正禁闪方案;其他写法如caret_blinking:false已被移除解析,无效且无警告。

"caret_style": "solid" 并清零三项尺寸参数,是 Sublime Text 4.4+ 唯一真正禁闪的方案。其他写法(比如 caret_blinking: false)在当前版本里压根不解析,写了等于没写。
为什么 caret_blinking: false 完全无效
这个键名从 ST4.4 开始就被移出配置解析白名单,Sublime 启动时直接跳过它,连警告都不会报。旧教程里沿用的写法,基本都针对 ST3 或更早分支——而即便在 ST3 中,它也只对已淘汰的 "caret_style": "blink" 起作用,且效果不稳定。系统级光标设置(如 macOS 的 IBInsertionPointBlinkPeriod)会覆盖该字段,尤其在远程桌面或高 DPI 缩放下完全失效。
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"退化回竖线并恢复闪烁)
必须只改右侧「User」面板,且 JSON 语法不能有半点错误。左侧 Default 面板里的任何修改都无效,升级后还会被覆盖。











