Sublime Text光标不闪烁的唯一可靠方案是设"caret_style": "solid"并同时将"caret_extra_top"、"caret_extra_bottom"、"caret_extra_width"均设为0;缺一不可,否则高DPI或远程桌面下可能因像素对齐异常导致伪闪烁。

Sublime Text 无法真正调节光标闪烁“频率”,所谓“调快调慢”在原生层面不存在;想让光标不闪,唯一稳定方案是设 caret_style: "solid" 并清零三项额外尺寸参数。
为什么 blink_interval 设成 0 还在闪
因为 blink_interval 只对已废弃的 caret_style: "blink" 生效,而该值在 ST4.4+ 中多数主题下会被降级为 "phase" 或直接忽略。macOS / Windows / Linux 系统级光标设置会覆盖 Sublime 的任何尝试,尤其 macOS 上该字段基本无效。远程桌面或高缩放场景下,blink_interval 还可能因帧率不同步导致跳帧,反而更干扰视觉。
真正可控的只有“是否闪烁”,不是“怎么闪”
-
caret_style: "solid" 是唯一原生不走帧动画逻辑的样式,填满字符高度、始终不透明,禁闪效果 100% 可靠 - 但单设这一项不够:必须同时设
caret_extra_top: 0、caret_extra_bottom: 0、caret_extra_width: 0 —— 缺一不可,否则高 DPI 下仍可能微动或抖动 -
caret_blinking: false 能关掉显隐切换,但对"phase"模式仅抑制过渡动画,底层仍走帧循环,视觉上可能残留呼吸感 -
"block"不是官方支持值,行为不稳定;"underline"和"wide"本身不闪烁,但前者小字号下几乎不可见,后者在远程桌面易错位
光标宽度控制的实际规则与陷阱
caret_width 仅对 caret_style: "smooth" 或 "wide" 生效,设为 "solid" 时完全被忽略;而 wide_caret 是布尔开关,开启后会让默认竖线变粗,但它和 "wide" 模式语义重复,混用会导致渲染错位或边缘模糊。
- 想要加粗竖线:用
caret_style: "wide",别加wide_caret: true - 想要更柔和加粗:用
caret_style: "smooth" +wide_caret: true - 想让块状光标横向更醒目:对
"solid"设caret_extra_width: 3~4(MacBook Pro 等高分屏推荐) -
caret_extra_top/caret_extra_bottom对"solid"有效,但设非零值会引入垂直方向微动风险,禁闪场景建议保持为 0
改完不生效?优先排查这三类覆盖
常见失效不是配置写错,而是被外部因素劫持:
- UI 主题(如 Material Theme)会强制重置
caret_style,先切回"theme": "Default" 验证 - 插件(如 BlockCursor、FocusMode)会在运行时动态覆盖光标样式,需临时禁用排查
- 系统级设置干扰:Windows 高对比度模式、macOS 辅助功能里的“键盘光标闪烁”开关,都会压倒 Sublime 配置
真正极客级定制不在参数堆砌,而在删减——删掉所有冗余开关,只留 caret_style: "solid" 和三个零值,才是最干净、最稳定、最跨平台的方案。


















