VSCode光标闪烁速度由editor.cursorBlinking控制,仅支持"blink""smooth""solid""phase""expand"五种字符串模式,无法直接设置毫秒值;调整本质是切换模式或借助CSS/系统设置等外部手段。

光标闪烁速度由 editor.cursorBlinking 控制
VSCode 不提供直接输入毫秒值的设置项,而是通过预设模式控制闪烁行为。editor.cursorBlinking 是唯一生效的配置项,它影响的是“是否闪烁”和“闪烁节奏类型”,不是精确的频率数值。
-
blink(默认):标准快闪,约 530ms 亮 + 470ms 灭,总周期 ~1s -
smooth:淡入淡出式过渡,视觉上更柔和,但实际周期略长 -
solid:完全不闪烁,光标常显 -
phase:按编辑器渲染帧率动态调整,不同设备表现不一致 -
expand:光标从细线渐变为粗线再缩回,仅在部分主题下可见效果
想调慢/调快?只能靠改源码或插件绕过限制
VSCode 官方没开放 cursorBlinkRate 这类底层参数。所谓“调速度”,本质是换闪烁模式,或用外部手段干预。
- 浏览器版 VSCode(
code-server)可临时加 CSS 覆盖:body .monaco-editor .cursor { animation-duration: 2000ms !important; },但每次更新可能失效 - 桌面版 Windows/macOS 可尝试系统级光标设置(如 Windows 的“控制面板 > 轻松使用 > 键盘 > 光标粗细和闪烁频率”),但 VSCode 常忽略该设置
- 插件如
Custom CSS and JS Loader能注入样式,但需启用开发者模式,且新版 VSCode 已禁用该插件
settings.json 里怎么写才不报错
错误写法:"editor.cursorBlinking": "600"(字符串数字无效)、"editor.cursorBlinking": 600(必须是字符串)。
- 正确值只有五种字符串:
"blink"、"smooth"、"solid"、"phase"、"expand" - 大小写敏感,
"BLINK"或"Blink"都会回退到默认值 - 如果同时设置了
editor.cursorStyle(如"line"),某些组合(如line+expand)可能无闪烁效果
为什么改了没反应?常见干扰点
最常被忽略的是作用域和覆盖逻辑——VSCode 设置有用户级、工作区级、远程连接级三层,高优先级设置会覆盖低优先级。
- 检查右下角状态栏是否显示
Workspace Settings,说明当前编辑的是工作区配置,用户全局设置可能被屏蔽 - 远程开发(SSH/Containers)时,设置必须写在远程环境的
settings.json里,本地改无效 - 某些主题(如
Nord、One Dark Pro)会通过workbench.colorCustomizations覆盖光标颜色和透明度,间接影响闪烁感知 - 开启
editor.cursorSmoothCaretAnimation后,smooth模式可能延迟首次闪烁
editor.cursorBlinking 模式,比硬刚频率更实在。


















