VSCode不支持直接设置光标闪烁毫秒值,仅能通过editor.cursorBlinking切换blink/smooth/phase/expand/solid五种预设模式;终端光标则仅支持true/false开关,二者配置完全独立。

VSCode 不支持直接调整光标闪烁“频率”(毫秒值),所谓“调快慢”本质是切换预设的闪烁行为模式,或绕过限制用外部手段干预。
editor.cursorBlinking 只接受五种字符串值
这个配置项控制的是光标“是否闪烁”以及“怎么闪”,不是数值型周期设置。写成 "600"、500、false 或 "off" 都会静默失效,回退到默认 "blink"。
-
"blink":标准开关式,亮约 530ms + 灭约 470ms,总周期 ~1s -
"smooth":淡入淡出动画,需 VSCode ≥ 1.85;macOS 开启「减少运动」会禁用它 -
"solid":常亮不闪(不是隐藏,是稳定显示) -
"phase":横向亮度渐变,需 ≥ 1.87 -
"expand":轻微缩放呼吸效果,在等宽字体下更明显
大小写敏感:"Blink" 或 "SMOOTH" 都无效。必须用小写+双引号包裹。
终端光标闪烁不能调速,只能开/关
内置终端(Ctrl+` 打开的那个)和编辑器光标完全独立,terminal.integrated.cursorBlinking 只接受布尔值:true(闪烁)或 false(常亮)。写成 "true"(字符串)、1、"on" 都会失败,退回到默认 false。
- 设为
false是最接近 DOS 风格的稳定方块光标 - 设为
true后,实际节奏由系统底层控制(如 Windows 控制面板里的“光标闪烁频率”),但 VSCode 不保证响应 - 终端不支持
"smooth"等动画模式,那些只对编辑器生效
想真正“调慢”或“调快”,只能靠非官方手段
官方没暴露 cursorBlinkRate 这类底层参数。可行路径有限且有代价:
- 浏览器版 VSCode(code-server)可临时加 CSS:
body .monaco-editor .cursor { animation-duration: 2000ms !important; }但每次更新可能失效 - 桌面版可尝试系统级设置(Windows:控制面板 → 轻松使用 → 键盘 → 光标闪烁频率;macOS:系统设置 → 辅助功能 → 显示 → 减少运动),但 VSCode 常忽略
- 插件如 Custom CSS and JS Loader 曾可注入样式,但新版 VSCode 已禁用该能力
- 改源码或编译定制版——不现实,也不推荐
别在 settings.json 里写 "editor.cursorBlinking": "2000",它不会报错,但也不会起效。
为什么改了 settings.json 没反应?先查这三处
最常被忽略的是作用域覆盖逻辑:
- 右下角状态栏显示 Workspace Settings,说明你正在编辑工作区配置(
.vscode/settings.json),用户级设置被屏蔽 - 远程开发(SSH/Dev Container)时,设置必须写在远程环境的
settings.json里,本地改无效 - Vim / Emacs 类插件(如 Vim、whichkey)常在运行时动态接管光标样式,哪怕配置全对,也会被覆盖
主题也可能干扰:某些主题通过 workbench.colorCustomizations 调整光标透明度或颜色,让闪烁变得难以察觉——这不是配置失效,而是视觉欺骗。











