90%是配置开关被关或设错:editor.cursorBlinking设为"solid"即常亮不闪,等效于"off";有效闪烁值仅"blink"、"smooth"、"phase"或"expand";终端光标需单独配terminal.integrated.cursorBlinking且默认为false。

光标不显示、不闪烁、改了没反应——90% 是配置开关被关了,或设在了错误位置。
editor.cursorBlinking 设成 "solid" 就不闪了
很多人搜“怎么让光标不闪烁”,直接设 "editor.cursorBlinking": "solid",结果发现光标真的不动了,还误以为“设置生效”。其实 "solid" 的语义就是“常亮无动画”,它和 "off" 效果一致(只是 VSCode 不再校验 "off" 这个非法值)。真正控制闪烁的只有三个有效值:"blink"(默认)、"smooth"(1.85+ 支持)、"phase" 或 "expand"(需确认版本是否 ≥1.87)。
- 设成
"solid"后,editor.cursorStyle切换为"block"也可能视觉上“消失”,尤其在深色主题下 - 如果想保留闪烁但调慢节奏,VSCode 没有帧率控制项,只能换动画类型(比如
"phase"比"blink"更柔和) - Mac 用户开
"editor.smoothScrolling": true+"editor.cursorBlinking": "smooth"容易卡顿,建议关掉前者单独试后者
terminal.integrated.cursorStyle 和编辑器互不影响
你在编辑器里把光标改成 "line",终端里还是粗方块?正常。VSCode 终端光标完全独立,必须单独配 terminal.integrated.cursorStyle 和 terminal.integrated.cursorBlinking。
-
terminal.integrated.cursorStyle可选"block"(默认)、"underline"、"line";"block-outline"等编辑器支持的值在终端里无效 -
terminal.integrated.cursorBlinking默认是false,不手动开,终端光标永远不闪——这不是 bug,是设计 - 终端光标颜色无法单独配置,它直接取 shell 的前景色;看不清先调
terminal.integrated.fontSize到 14+,再检查背景色对比度(比如纯黑 #000000 配灰白光标就容易“隐形”)
光标太细看不清?改 editor.cursorWidth 最直接
VSCode 默认光标宽度是 1 像素,在高分屏或小字号下几乎不可见。别折腾主题或插件,直接设 "editor.cursorWidth": 2 或 3。
- 值范围是整数 1–20,设 2 就有明显改善,设 5 在 4K 屏上也够用
- 这个设置只影响竖线光标(
line/line-thin),对block类型无效 - 修改后保存即生效,旧版 VSCode(≤1.78)可能需要重开窗口
- 别和
workbench.colorCustomizations里的"editorCursor.foreground"混用——后者只管颜色,且写错格式(如漏 # 或位数不对)会导致整个 colorCustomizations 失效
想加平滑移动或淡入淡出动画?只靠 Cursor Animations 插件
VSCode 原生不支持光标移动缓动,"editor.smoothScrolling" 控制的是视图滚动,不是光标本身。真要动画,目前唯一靠谱的是插件 Cursor Animations(作者 robbowen),但它只作用于编辑器主区域,终端里完全无效。
- 必须手动在
settings.json中启用:"cursorAnimations.enable": true,缺这句等于没装 -
"cursorAnimations.blinking": "fade"才触发淡入淡出;设"blink"就退回原生效果 - 主题冲突是最大坑:One Dark Pro、Material Theme 等会覆盖插件注入的 CSS;先切回
Default Dark+测试,确认动画恢复再排查主题 - 别信名字带 “Rainbow”、“Glow” 的插件——它们只改颜色/粗细,和动画无关;
Smooth Cursor等已废弃,安装后静默失效
最常被忽略的一点:所有光标相关配置,优先级顺序是「工作区设置(.vscode/settings.json)> 用户设置 > 默认」。改了半天没反应,先看右下角有没有 Workspace 标签,再搜一遍 JSON 里是否有多处同名 key 被覆盖。


















