唯一稳定禁闪+加粗的组合是"caret_style":"solid"并设caret_extra_top、caret_extra_bottom、caret_extra_width均为0;其他方案如仅调caret_extra_width或用"wide"等均无法彻底禁闪,且易受主题、插件或系统设置干扰。

caret_style 决定光标宽度,不是 caret_width
很多人误以为 caret_width 能控制所有光标粗细,其实它只对 "caret_style": "smooth" 有效;设成 "wide" 或 "solid" 时,caret_width 完全被忽略。真正决定“宽不宽”的是 caret_style 值本身:
-
"smooth":默认细竖线,caret_width可设为1~3微调(但高 DPI 下可能不明显) -
"wide":约 2px 固定加粗竖线,caret_extra_width可进一步加粗(仅在此模式下生效) -
"solid":填满字符高度的实心块,视觉最粗;caret_extra_width也生效,但必须同时设caret_extra_top和caret_extra_bottom为0,否则可能触发微动 -
"underline"和"wide_underline":宽度由当前字体基线决定,caret_extra_width无效
blink_interval 基本无效,别浪费时间调它
Sublime Text 没有真正可调的“闪烁频率”——blink_interval 在 ST4 build 4143+ 后仅对已弃用的 "blink" 模式起作用,而该模式多数主题下会被自动降级为 "phase" 或直接忽略。更关键的是:
- macOS 上,系统级
IBInsertionPointBlinkPeriod设置优先级最高,Sublime 配置基本无效 - Windows 高对比度模式启用时,
blink_interval被强制无视 - 远程桌面或高缩放场景下,设小值(如
100)反而导致跳帧、卡顿 - 设
"caret_style": "solid"或"phase"时,blink_interval完全不参与渲染逻辑
想彻底禁闪?只有一套组合能稳住
单设 "caret_blinking": false 或只改 caret_style 都可能残留伪闪烁(尤其在高 DPI 屏或某些 UI 主题下)。唯一原生、稳定、无副作用的禁闪方案是:
- 设
"caret_style": "solid" - 显式清空三项:
"caret_extra_top": 0、"caret_extra_bottom": 0、"caret_extra_width": 0 - 确保没开
"wide_caret": true(它和"wide"/"solid"功能重叠,混用会导致光标错位或恢复闪烁)
缺一不可。保存后立即生效,无需重启。
改完不生效?先排查插件和系统覆盖
常见“改了没反应”不是配置写错,而是被更高优先级规则压过:
- 某些 UI 主题(如 Material Theme)会强制重置
caret_style,临时禁用主题再试 - 插件如
BlockCursor、Origami或自定义 CSS 注入会劫持光标渲染,逐一禁用排查 - macOS 系统设置「辅助功能 → 显示 → 光标闪烁」开关打开时,Sublime 的任何禁闪尝试都会失效
- Windows 高对比度模式启用后,
caret_style可能被强制回退为细竖线
真正可靠的修改,永远发生在用户配置右侧面板,且必须避开系统级干扰源。


















