vscode光标颜色只能通过workbench.colorcustomizations设置editorcursor.foreground,无editor.cursorcolor配置;闪烁样式仅五种合法值,禁用闪烁须用"solid";形状、宽度、颜色需协同配置,且工作区设置优先级高于用户设置。

光标闪烁颜色不能单独设“闪烁色”,只能设整体光标颜色;所谓“闪烁样式”其实是动画类型,不是颜色变化。 你看到的“闪烁”,本质是光标在显示/隐藏(或 opacity 变化)之间切换,它没有独立的“闪烁时的颜色”。真正能控制的,只有光标常态下的颜色、形状、宽窄和动画节奏——而节奏还不能调快慢。
editor.cursorBlinking 值写错就白配
这个字段只认五个字符串:"blink"、"smooth"、"phase"、"expand"、"solid"。写成 false、"off"、0 或拼错成 "cursorBlink" 都会静默失效,VSCode 自动回退到默认 "blink"。想彻底不闪,必须用 "solid"——它不是“关掉”,而是“常亮”,视觉上就是不闪。
-
"smooth"和"phase"需 VSCode ≥1.85,旧版本直接忽略 - macOS 开启「减少运动」后,所有动画(包括
"smooth")会被系统禁用 - Vim / Emacs 模式插件可能动态覆盖该设置,怀疑被劫持时先禁用插件测试
光标颜色必须走 workbench.colorCustomizations
VSCode 没有 editor.cursorColor 这种配置项。想改颜色,唯一有效路径是往 workbench.colorCustomizations 里加 "editorCursor.foreground"。漏掉 #、写错位数(如 "ff4d4")、或值格式非法(如用 rgb() 但没加引号),会导致整个 workbench.colorCustomizations 失效,光标退回主题默认色。
- 推荐用十六进制,如
"#ff4d4d";RGBA 也支持,如"rgba(255, 77, 77, 0.9)" - 深色主题下光标易发灰,
"#ff4d4d"这类高饱和暖色比默认浅灰更醒目 -
"editorCursor.background"仅对"block"或"block-outline"形状生效,设了才看得见效果
editor.cursorStyle 和 editor.cursorWidth 要配着用
光标形状由 editor.cursorStyle 控制,但它本身不决定粗细。比如设成 "line-thin",再配 editor.cursorWidth: 3,宽度不会变——因为 cursorWidth 只对 "line" 和 "line-thin" 生效,且 "line-thin" 的基础宽度更小,设大值反而容易糊成一块。
-
"block-outline"是兼顾辨识与不遮挡文字的稳妥选择,尤其适合等宽字体+缩进多的代码 -
editor.cursorWidth推荐从2起步,1在高分屏上基本看不见,>5在"line"下易干扰连字渲染 -
"underline"形状下cursorWidth无效,粗细由主题或字体决定
最容易被忽略的是工作区设置覆盖:项目根目录下 .vscode/settings.json 里的同名配置,会无条件压过用户级设置。右下角如果显示 “Workspace”,说明你正在被它支配——别猜,直接打开那个文件删掉冲突项。











