让光标完全不闪烁的最稳方案是设 "caret_style": "solid" 并同时设 "caret_extra_top": 0、"caret_extra_bottom": 0、"caret_extra_width": 0;缺一不可,否则仍可能微动或抖动。

Sublime Text 无法真正调节光标“闪烁频率”,blink_interval 在多数场景下不可靠;想让光标彻底不闪,唯一稳定方案是设 "caret_style": "solid" 并清零三项额外尺寸参数。
怎么让光标完全不闪烁(禁用闪烁最稳方案)
别碰 blink_interval 或 caret_blinking 单独开关——它们在 macOS 上常被系统覆盖,ST3 基本无效,ST4 中也只对已废弃的 "blink" 模式起作用。真正可靠的组合只有一套:
-
"caret_style": "solid":这是 Sublime 原生唯一不走帧动画逻辑的样式,填满字符高度、始终不透明 "caret_extra_top": 0"caret_extra_bottom": 0"caret_extra_width": 0
这四者缺一不可。漏掉任意一个,Sublime 就会强制启用状态刷新,导致光标微动、抖动甚至错位。
为什么设了 "solid" 光标还在动?
常见原因不是配置写错,而是配套参数没清理干净,或被外部因素干扰:
-
"wide_caret": true和"caret_style": "wide"混用:二者功能重叠,易引发光标偏移或边缘模糊 - UI 主题劫持:如 Material Theme 会覆盖
caret_style,建议先切回"theme": "Default"验证 - 插件动态覆盖:BlockCursor、FocusMode 等插件会在运行时重写光标样式,需临时禁用排查
- 硬件加速干扰:
"gpu_window_buffer": true下,"block"或"smooth"可能渲染异常,但"solid"不受影响
caret_style 各值实际行为差异(不是名字说了算)
每个值对应不同渲染路径,直接影响是否闪烁、是否占位、是否兼容高 DPI:
-
"solid":唯一原生块状、不闪烁、不依赖动画定时器;等宽字体下对齐稳定,推荐作为默认 -
"phase":视觉上“不闪”,实为透明度渐变,底层仍走帧循环;macOS 显卡驱动下可能跳帧 -
"underline":仅画基线,小字号或某些字体(如 Fira Code)下几乎不可见 -
"wide":加粗竖线,但和"wide_caret": true功能重复;远程桌面或高缩放下易错位 -
"block":非官方支持值,部分文档误传;实际行为不稳定,等宽字体下可能挤占邻近字符空间
改完设置不生效?关键检查点
Sublime 的光标样式只从用户配置文件(Preferences → Settings – User)读取,左侧默认设置改了无效。还要注意:
- 必须保存 JSON 文件,且格式合法(逗号、引号、括号闭合)
- 某些 build(如 ST4 build 4143 之前)不支持
blink_interval,别白费劲 - macOS 用户请同步检查系统辅助功能里的“插入点闪烁”开关(
IBInsertionPointBlinkPeriod),它优先级更高 - 改完建议执行
Ctrl+Shift+P→Reload Settings,部分版本热重载不触发光标重绘
最容易被忽略的是:"solid" 必须配合三处 0 才真正静止——少一个,就可能在滚动、切换 tab 或输入时突然“抽动”一下。











