vscode终端光标闪烁只能开关(true/false),不支持smooth等动画模式;形状仅支持block/underline/line三种,宽度和颜色无法自定义,且设置需在对应环境(本地/远程)的settings.json中生效,不受编辑器配置和系统设置影响。

VSCode 终端光标闪烁不能调快慢,只能开或关;形状可设为 block/underline/line,但宽度和颜色无法自定义。
terminal.integrated.cursorBlinking 只接受 true/false
编辑器里那种 "smooth"、"phase" 等动画模式对终端完全无效。终端光标闪烁开关是布尔值:true 表示闪烁,false 表示常亮(不是“不显示”,是稳定显示)。
- 默认值是
false,所以新装 VSCode 的终端光标默认不闪——很多人以为“坏了”,其实是设计如此 - 写成
"true"(字符串)或1会静默失败,回退到false - 如果改了没反应,先检查是否被工作区设置(
.vscode/settings.json)覆盖,再确认没启用 Vim 插件劫持终端光标逻辑
terminal.integrated.cursorStyle 控制形状,但选项有限
终端支持的光标形状只有三个合法值:"block"(实心方块)、"underline"(下划线)、"line"(竖线)。其他如 "line-thin" 或 "block-outline" 在终端中会被忽略,回退到默认 "block"。
-
"block"最常用,盲打定位稳,但在某些深色主题 + 高对比度字体下边缘可能发虚 -
"underline"对空格/Tab 敏感,光标在空白处会“断开”,容易误判为消失 -
"line"和编辑器默认一致,但终端里 1 像素宽的竖线在小字号下极易丢失,不推荐
终端光标颜色和粗细根本没法配
VSCode 不提供 terminal.integrated.cursorWidth 或 terminal.integrated.cursorColor 这类配置项。终端光标颜色直接继承 shell 的前景色(比如 zsh 或 bash 的 $PS1 配色),宽度则由字体渲染引擎决定。
- 想让光标更醒目?唯一可靠办法是调大
terminal.integrated.fontSize(比如设为14或16),再配合高对比度背景(如#0f172a深蓝灰) - 别试图用
workbench.colorCustomizations覆盖终端光标色——它只影响编辑器区域,对终端无效 - 某些主题(如
vscode-dark-islands)看似优化了终端光标,实际是靠预设了高对比度的终端背景色+字体大小,不是真改了光标本身
为什么改了 settings.json 还是没反应?
终端光标设置生效有严格前提:必须写在当前环境生效的 settings.json 里,且不能被插件或远程配置覆盖。
- 本地开发:改用户级
settings.json即可;但如果打开了文件夹,工作区级.vscode/settings.json优先级更高,得同步改那里 - 远程开发(SSH / Dev Container):设置必须写在远程机器上的
settings.json里,本地改毫无作用 - Vim 插件(如 vim-mode-plus)或终端增强插件(如 Terminus)可能动态接管光标行为,禁用后测试才能确认是不是配置生效
- Mac 用户注意:系统「辅助功能 → 键盘 → 光标粗细」设置对 VSCode 终端无效,别白调
最常被忽略的是:终端光标和编辑器光标是两套完全独立的系统,连配置路径都不重叠。哪怕你把 editor.cursorBlinking 设成 "smooth",终端该不闪还是不闪——这不是 bug,是 VSCode 明确的设计分隔。











