"solid" 是最接近原生块状光标的内置选项,渲染为不闪烁、填满字符高度的实心矩形;若需 Vim 模式下动态切换光标形态,须安装 Block Cursor Everywhere 插件。

直接用 caret_style 设成 "solid" 最接近原生块状光标
Sublime 原生不支持 Vim 那种“随模式切换的动态块光标”,但 "solid" 是最接近的内置选项:它会渲染成一个实心、不闪烁、填满当前字符高度的矩形块。不是“模拟”或“加粗竖线”,而是真正的块状形态。
-
"solid"在深色主题下尤其醒目,适合视力疲劳或高分屏用户 - 如果同时启用了
"wide_caret": true,"solid"会变宽,但本质仍是块——不会变成竖线 - 注意:某些 UI 主题(如 Material Theme)可能覆盖
caret_style行为,此时优先检查主题是否禁用了该设置
想在 Vim 模式下真出小方块?必须装 Block Cursor Everywhere
仅靠配置项无法让 Normal 模式和 Insert 模式分别显示不同光标形态。Sublime 的 Vim 插件(Vintageous 或 Vintage)本身不接管光标渲染逻辑,所以要块状光标 + 模式感知,得靠第三方插件。
- 用
Ctrl+Shift+P打开命令面板 → 输入Package Control: Install Package→ 搜索并安装Block Cursor Everywhere - 安装后默认生效,Normal 模式下是块状,Insert 模式下恢复竖线(可配置)
- 该插件兼容 Sublime Text 4,但若你用的是较老的 ST3 build(如
caret_extra_width 和 wide_caret 别混用,否则可能失效
很多人以为两个都开能让光标“又宽又块”,实际不是这样:wide_caret 是全局开关,而 caret_extra_width 是像素级微调,两者逻辑冲突时后者常被忽略。
- 设
"wide_caret": true后,"caret_style": "wide"或"phase"才会真正变宽;但"solid"不受wide_caret影响 -
"caret_extra_width": 2只对"wide"、"phase"、"smooth"类竖线样式起作用,对"solid"无效 - Retina 屏或 4K 外接屏建议从
caret_extra_width: 3起试,1在高 DPI 下几乎看不出变化
光标不生效?先关掉“语法高亮主题”偷偷改的样式
有些颜色主题(尤其是自定义 .tmTheme 文件)会在内部硬编码 caret 颜色或形状,直接覆盖用户设置。这不是 bug,是 Sublime 主题机制的正常行为。
- 临时验证方法:切换回默认主题
"theme": "Default.sublime-theme",看光标是否恢复正常 - 若确认是主题导致,可在主题文件中搜索
caret或foreground相关 key,删掉或注释对应 block(不推荐新手直接改) - 更稳妥的做法是换用已知兼容性好的主题,比如
Adaptive或Default Dark










