Sublime Text 4.4+ 中 caret_blinking 已被彻底移除,光标是否闪烁由 caret_style 决定;仅 "solid" 模式原生无动画,且需同时设 caret_extra_top、bottom、width 为 0 才能真正停闪。

为什么 caret_blinking: false 完全没用
Sublime Text 4.4+ 已彻底移除 caret_blinking 这个配置项——它不在解析白名单里,写了等于不存在。你看到的旧教程里这条配置,要么针对早已淘汰的 ST3,要么是误传。光标是否闪烁,根本不由这个布尔值控制,而是由 caret_style 所选的渲染路径决定:"phase" 和 "smooth" 天然走动画帧循环,"solid" 则直接跳过整个动画调度器。
caret_style 哪些值真能停闪,哪些只是“看起来像”
可用值中只有 "solid" 是原生无动画模式;它渲染为填满字符高度的纯色矩形,不参与任何重绘计时,真正停闪。"block" 和 "underline" 在某些主题或缩放下可能“不闪”,但它们仍依赖系统光标刷新逻辑,稳定性远不如 "solid"。"wide"、"phase"、"smooth" 全部会闪烁,且无法通过调慢周期(比如改 blink_interval)来消除——这个参数本身在 Sublime 中并不存在,设了也无效。
最小必要配置:只写 "caret_style": "solid" 不够稳
单独设 "caret_style": "solid" 在多数场景下能停闪,但在高 DPI 缩放、远程桌面、或某些 UI 主题下,残留的 caret_extra_top、caret_extra_bottom、caret_extra_width 值会导致视觉抖动,被误判为“还在闪”。这不是 bug,而是像素对齐异常引发的渲染残留。
- 必须显式清零三项:
"caret_extra_top": 0、"caret_extra_bottom": 0、"caret_extra_width": 0 - 所有修改只写在 Preferences → Settings 右侧「User」面板,左侧 Default 改了无效且会被升级覆盖
- 若同时启用
"wide_caret": true,会强制退化回默认竖线并恢复闪烁,哪怕caret_style是"solid"
改完还是闪?先排查这三类干扰源
如果 JSON 格式正确、参数也写对了,光标却仍在微动或跳帧,大概率不是配置问题,而是外部干扰:
- 插件劫持:如
BlockCursor、Vintageous等插件会接管光标渲染,用户设置全失效;临时禁用插件验证 - 硬件加速冲突:开启
"gpu_window_buffer": true时,"smooth"模式易出滚动残影,看起来像光标在“拖尾”;可试设"gpu_window_buffer": false - UI 主题覆盖:如 Material Theme 会覆盖
caret_style,建议先切回"theme": "Default"验证
真正让光标常亮的关键,从来不是“关掉某个开关”,而是换一条完全不走动画逻辑的渲染路径,并把所有可能触发重绘的额外尺寸参数清零——漏掉任意一个,Sublime 就会强制启用状态刷新。


















