Sublime Text 光标颜色只能通过修改 UI theme 文件中 "class": "caret" 的 layer0.tint 和 layer0.opacity 实现,或安装支持光标着色的插件;Preferences 中的 caret_color 无效且不存在,配色方案也不影响光标颜色。

Sublime Text 原生不支持通过 caret_color 或类似设置修改光标颜色 —— 所有直接改 settings 的尝试都会失效。 真正起效的路径只有两条:改当前启用的 UI theme 文件(.sublime-theme),或装支持光标着色的插件。靠配色方案(.sublime-color-scheme)文件本身,改不了光标颜色。
为什么 caret_color 在 Preferences.sublime-settings 里没用
这个配置项在 Sublime 中并不存在。官方文档和源码里均无 caret_color 字段;部分用户误传或混淆了旧版 TextMate 的行为。即使你手动加了这一行,Sublime 加载时会静默忽略它,不会报错,也不会生效。
- 真正参与光标渲染的是 UI theme(如
Default Dark.sublime-theme)里的"class": "caret"规则 -
Preferences.sublime-settings中的caret_style、caret_extra_width等只控制形状/尺寸/动画,不触碰颜色 - 配色方案(.sublime-color-scheme)只管文本区域的语法高亮、选区、行号等,完全不处理光标绘制
改 theme 文件里的 "class": "caret" 才是正解
必须编辑你当前启用的 theme 文件,在其 JSON 结构中找到或新增 "class": "caret" 对应的 rule,并设置 layer0.tint 和 layer0.opacity。
- 路径通常为:
Packages/Theme - Default/Default Dark.sublime-theme(或你用的其他主题包) - 更安全的做法:用
PackageResourceViewer: Open Resource命令打开当前 theme,复制全部内容,粘贴到Packages/User/my-custom-theme.sublime-theme - 在 rule 里添加或修改这两项:
"layer0.tint": [255, 85, 85](RGB 数组,支持 0–255 整数)"layer0.opacity": 1.0(0.0–1.0,太低会看不清) - 保存后无需重启,Sublime 会自动重载 theme;若没反应,检查是否在
Preferences.sublime-settings中正确设置了"theme": "my-custom-theme.sublime-theme"
插件方案:轻量且免手动改文件
如果你不想碰 theme 文件,或者用的是第三方主题(如 Material Theme、ayu),推荐装插件来接管光标样式。
-
ColorHighlighter:提供caret_color配置项,但仅对部分 theme 生效;需配合启用highlight_caret -
Theme - UI类插件(如UI Customization):通过注入 layer 规则覆盖原 theme 的 caret 绘制逻辑 - 注意:插件可能与
Block Cursor Everywhere等光标增强类插件冲突,建议禁用后者再测试
容易被忽略的兼容性细节
Windows/macOS/Linux 下光标渲染路径不同,同一组 layer0.tint 值在不同系统上视觉差异明显:
- macOS Retina 屏:RGB 值需更高饱和度(如
[255, 60, 60])才显眼,opacity推荐 ≥ 0.95 - Windows 高 DPI:避免用纯白
[255, 255, 255],易发虚;可试[240, 240, 240]+opacity: 0.98 - Linux Wayland:部分桌面环境(GNOME)会强制接管光标,此时 theme 修改可能被绕过;优先换用
caret_style: "solid"+caret_extra_width: 1.5提升可辨识度











