直接修改 editor.cursorBlinking 即可控制光标闪烁行为,支持 "blink"、"smooth"、"phase"、"expand"、"solid" 五种模式;editor.cursorSmoothCaretAnimation 仅影响光标移动动画,与闪烁无关;远程开发或主题插件可能覆盖该设置。

直接改 editor.cursorBlinking 就行,不用装插件,也不用动 CSS。
光标闪烁行为由 editor.cursorBlinking 控制
这个设置决定光标是“闪”还是“不闪”,以及怎么闪。它和 editor.cursorSmoothCaretAnimation 是两回事——后者只影响光标移动时的动画过渡,跟闪烁无关。
-
"blink":标准开关式闪烁(默认) -
"smooth":淡入淡出,视觉更柔和,适合长时间编码 -
"phase":类似呼吸效果,亮度周期性变化 -
"expand":光标从中心向外扩展再收缩 -
"solid":完全不闪烁,始终可见(录屏、演示或易分心者常用)
在 settings.json 中写成这样即可:
{ "editor.cursorBlinking": "smooth" }
改完保存,立刻生效,无需重启。
editor.cursorSmoothCaretAnimation 不是闪烁设置
很多人搜“平滑光标”会误配这个选项,但它只管光标在编辑器里“跳转”时的动画(比如 Ctrl+Left/Right 跳词、鼠标点击换行),不影响闪烁本身。
-
"off":跳转瞬移,无动画 -
"explicit":仅当你主动点击或按方向键时才动画 -
"on":所有光标位移都带动画(包括打字时的自动右移)
如果你想要“打字时也平滑移动”,才开 editor.cursorSmoothCaretAnimation;如果只是想让光标不闪或换种闪法,editor.cursorBlinking 才是唯一要动的。
远程开发或插件可能覆盖你的设置
Remote-SSH、Dev Containers 场景下,VS Code 实际运行在远端机器上,本地 settings.json 无效。你得在远端环境的 settings.json 里同样配置 editor.cursorBlinking。
- 主题插件(如 Material Theme、Dracula)有时会注入 CSS 强制重写光标样式,导致
editor.cursorBlinking失效 - 遇到不生效,先禁用所有插件,用纯 VS Code 测试
- 某些插件(比如 kursor-vscode)完全接管光标渲染,此时内置设置会被忽略——它走的是 SVG/CSS 注入路径,不是编辑器原生逻辑
真正难的不是改哪一项,而是搞清你当前用的是原生光标,还是被某个插件或远程环境劫持了控制权。先确认运行上下文,再动配置,否则改了也白改。


















