sublime text终端光标不受caret_style控制,因其由插件(如terminus)独立渲染;需在terminus.sublime-settings中配置cursor_shape和cursor_blinking。

Sublime Text 的内置终端(如通过 Terminus 或 ShellCommand 插件启动的面板)**不继承编辑器主窗口的 caret_style 设置**,它的光标由终端模拟器自身控制,不能通过 Preferences.sublime-settings 直接修改。
为什么改了 caret_style 对终端光标没用
编辑器主窗口和终端面板是两套独立渲染路径:前者走 Sublime 原生 caret 渲染管线,后者依赖插件实现的终端模拟器(如 Terminus 基于 xterm.js 或原生 PTY)。caret_style、caret_extra_width 等配置只作用于文本编辑区域,对终端输入框完全无效。
- 常见误操作:在 Settings – User 里加
"caret_style": "solid",结果终端里还是细竖线闪烁 - 根本原因:终端光标样式由插件定义,不是 Sublime 核心功能
- 即使禁用了
caret_blinking,终端面板仍按插件默认逻辑闪烁
Terminus 插件怎么调终端光标
如果你用的是主流终端插件 Terminus(推荐),它的光标行为由插件自己的配置控制,需修改 Terminus.sublime-settings:
- 打开
Preferences → Package Settings → Terminus → Settings - 在右侧用户设置中添加或修改以下字段:
{
"terminal_view_settings": {
"cursor_shape": "block",
"cursor_blinking": false,
"font_size": 12
}
}
-
cursor_shape可选值:"block"(块状)、"underline"(下划线)、"bar"(竖线)——注意这不是caret_style的值,命名不同 -
cursor_blinking设为false才能真正停闪;设true时闪烁节奏由终端模拟器底层决定,不受blink_interval影响 - 部分旧版 Terminus 需要重启面板才能生效(不是重启 Sublime)
其他终端插件的光标控制差异
不同终端插件暴露的配置项不一致,容易混淆:
-
ShellCommand:几乎无光标定制能力,仅支持系统级终端设置(如 macOS 的defaults write NSGlobalDomain IBInsertionPointBlinkPeriod -int 0) -
Terminal(已停止维护):不支持任何光标样式配置,硬编码为竖线+闪烁 -
Terminus是目前唯一稳定支持cursor_shape和cursor_blinking的插件,且兼容 ST4 build 4160+ - 所有插件都无法让终端光标变色——颜色由终端配色方案(如
scheme文件里的foreground)统一控制,不是独立属性
系统级设置可能覆盖插件配置
尤其在 macOS 和 Windows 高对比度模式下,系统光标策略会压倒插件设置:
- macOS:运行
defaults write NSGlobalDomain IBInsertionPointBlinkPeriod -int 0后需注销重登才对所有应用生效 - Windows:「设置 → 辅助功能 → 文本光标」里关闭「使文本光标更醒目」或调高「光标粗细」会影响 Terminus 的
cursor_shape: "bar"显示效果 - Linux:X11 下
xset bc关闭光标闪烁,但 Wayland 下多数终端插件直接忽略该命令 - 验证方法:临时禁用所有插件,只留 Terminus,再测试配置是否生效——排除插件冲突干扰
真正起效的终端光标控制,永远落在插件配置层,而不是编辑器全局设置。别在 Preferences.sublime-settings 里浪费时间调 caret_extra_top ——它对终端面板零影响。











