必须将editor.cursorblinking设为"smooth"且vscode≥1.85,否则静默回退至"blink";常见失效原因包括版本不足、macos「减少运动」启用、值格式错误(如大小写/引号缺失)或被editor.smoothscrolling干扰。

想让 VSCode 光标闪烁变成平滑淡入淡出效果,必须用 editor.cursorBlinking 设为 "smooth",且 VSCode 版本 ≥ 1.85 —— 低于这个版本会静默回退到默认 "blink"。
为什么设了 "smooth" 还是快闪?
常见原因是版本不达标或被其他设置干扰:
-
"smooth"仅在 VSCode ≥ 1.85 中生效;旧版(如 1.84 或更早)识别但忽略该值,自动 fallback 到"blink" - macOS 开启系统级「减少运动」后,所有动画(包括
"smooth")会被强制禁用 - 同时启用了
editor.smoothScrolling,在部分 macOS 设备上可能引发渲染冲突,导致光标跳帧或拖影 - 值写错格式:比如
"Smooth"(首字母大写)、'smooth'(单引号,在 JSON 中非法)、或漏掉引号直接写smooth,都会导致配置无效
editor.cursorBlinking 的合法值只有五个
别试 "off"、false、0、"none" —— 这些都不被识别,VSCode 会悄悄用默认 "blink" 替代:
-
"blink":传统开关式(亮 530ms / 灭 470ms) -
"smooth":淡入 + 淡出,无突兀切换 -
"phase":亮度从左向右周期性渐变(需 ≥ 1.87) -
"expand":光标轻微“呼吸”缩放(等宽字体下更明显) -
"solid":常亮不闪(不是“关闭”,是动画帧数压成一帧)
搭配 editor.cursorStyle 才能看清效果
"smooth" 动画只改变闪烁节奏,不改形状。如果当前是 "block" 或 "underline",淡入淡出可能不易察觉;推荐配 "line" 或 "line-thin":
-
"line"+"smooth":竖线柔和显隐,对比最清晰 -
"line-thin"在高 DPI 屏上太细,建议同步加editor.cursorWidth: 2 -
"block-outline"虽然视觉干净,但因边缘描边,"smooth"动画几乎不可见 - 别指望
"underline"配"smooth"有明显变化——下划线本身没有 opacity 渐变空间
Mac 用户特别注意:动画卡顿不是配置错
如果你开了 editor.smoothScrolling,又选了 "smooth",大概率在 Retina 屏上出现光标延迟首次显示、或闪烁节奏不稳。这不是 bug,是 macOS Metal 渲染路径下的已知交互问题:
- 临时验证:关掉
editor.smoothScrolling,保留editor.cursorBlinking: "smooth" - 不建议长期关滚动平滑——可只在专注编码时开,写完再关
- 终端(Terminal)里的光标不受影响,它走的是
terminal.integrated.cursorBlinking,默认为false
真正起效的只有三件事:确认 VSCode 版本 ≥ 1.85、editor.cursorBlinking 写对字符串、没被系统「减少运动」劫持。其余都是干扰项。











