光标闪烁由"editor.cursorBlinking"控制,有效值为"blink"、"smooth"、"phase"、"expand"、"solid";形状由"editor.cursorStyle"设定,共六种;颜色需通过workbench.colorCustomizations配置。

光标闪烁控制用 "editor.cursorBlinking",不是 CSS
VSCode 的光标闪烁行为完全由设置项控制,和网页 CSS 无关。改错地方会导致无效——比如去修改 workbench.colorCustomizations 里的 cursor 颜色,但闪烁停不下来,就是没动对参数。
有效值只有五个字符串:"blink"(默认)、"smooth"、"phase"、"expand"、"solid"。其中 "solid" 表示完全不闪烁,其他四种是不同节奏的淡入淡出或缩放动画。
-
"blink":传统开关式闪烁,快闪慢灭 -
"smooth":淡入淡出最柔和,适合长时间编码 -
"phase":亮度周期性渐变,不中断视觉流 -
"expand":光标从细线轻微向外“呼吸”膨胀,注意在等宽字体下更明显
"editor.cursorStyle" 决定形状,但不控制粗细或颜色
光标形状只有六种可选值:"line"(竖线,默认)、"block"(方块)、"underline"(下划线)、"line-thin"(细竖线)、"block-outline"(空心方块)、"underline-thin"(细下划线)。这些值直接改变光标渲染形态,但无法调节像素级宽度或自定义颜色。
颜色必须走另一条路:workbench.colorCustomizations 中配 "editorCursor.foreground",否则改了形状也看不出区别(尤其暗主题下默认光标可能太淡)。
- 想用 block 光标但又怕遮挡文字?选
"block-outline",它只画边框 -
"line-thin"在高 DPI 屏幕上可能几乎看不见,建议搭配"editor.fontSize"≥14 使用 - 终端(Terminal)里的光标不受此设置影响,那是 shell 或终端模拟器控制的
全局设置 vs 用户设置:优先写进 settings.json
图形界面里点点点改设置,容易漏掉 cursorBlinking 和 cursorStyle 这类非显眼选项。更稳的方式是直接编辑 settings.json(Cmd/Ctrl + Shift + P → 输入 Preferences: Open Settings (JSON))。
注意不要把它们写进工作区(.vscode/settings.json)里,除非你真想让整个项目组都用同一套光标行为——多数人只是个人偏好,应放在用户级设置中。
- 写错 key 名会静默失败,比如写成
"cursorBlink"或"editor.cursor_blinking"都无效 - 值必须是字符串,写
true/false或数字会触发 VSCode 报错提示 - 改完不用重启,保存后立即生效(个别旧版本需重开编辑器)
Mac 上光标动画卡顿?关掉 "editor.smoothScrolling" 可能有帮助
这不是直接相关设置,但真实存在:部分 macOS 用户开启 "editor.cursorBlinking": "smooth" 后,配合开启 "editor.smoothScrolling": true,会出现光标闪烁不同步、拖影或跳帧现象,尤其在滚动+打字同时发生时。
根本原因是两个动画共用渲染线程,而 macOS 的 Core Animation 在某些 GPU 驱动下调度不稳定。临时解法就是关掉其中一个——大多数人更在意光标响应,所以建议保留光标动画,关掉平滑滚动。
- 这个现象在 Intel 核显 Mac(如 2017 iMac)上更常见,M 系列芯片基本无感
- 如果用了插件如
Bracket Pair Colorizer或Indent-Rainbow,它们的实时高亮也会加剧渲染压力 - 别指望靠调低
"editor.cursorWidth"来缓解——它只影响"line"形状的粗细,和动画性能无关










