vscode原生不支持背景图片,必须通过插件实现;当前唯一稳定插件是shalldie.background,需用file:///绝对路径、启用"pointer-events":"none"并完全重启vscode。

VSCode 本身不支持原生设置背景图片,所有“背景图”效果都依赖第三方扩展实现,且配置项名称、路径格式、样式写法必须严格匹配所用插件的规范——填错一个字段名或漏掉 pointerEvents:"none",图片就显示不出来,或者光标点不进代码区。
确认你装的是哪个 background 插件
VSCode 市场里叫 “background” 的插件有好几个,最常用的是 shalldie.background(即 vscode-background)和 aaron-bond.background-cover。两者配置结构完全不同:
-
vscode-background使用background.editor、background.sidebar等嵌套对象,images必须是数组,哪怕只设一张也要写成["file:///path/to/img.jpg"] -
background-cover则用扁平键名,如background.customImages、background.style,且不支持多区域独立配置 - 装完插件后,别急着改
settings.json——先按Ctrl+Shift+P输入background,看命令面板里出现的是Background: Install/Activate plugin还是Background Cover: Select Image,据此反推插件类型
路径必须是 file:// 协议 + 全英文无空格
本地图片路径不是直接写 C:\pics\bg.jpg 或 ./bg.jpg,否则 100% 加载失败,且 VSCode 不报错、不提示。
- Windows 下正确写法:
"file:///C:/pics/bg.jpg"(三个斜杠)或"file://C:/pics/bg.jpg"(两个斜杠),推荐前者 - macOS / Linux 下:
"file:///Users/you/Pictures/bg.png",开头三个斜杠不能少 - 路径中含中文、空格、括号(如
我的图片 (1).jpg)会导致静默失败;建议把图片放到C:/bg/或~/bg/这类纯英文路径下 - 相对路径(如
"./bg.jpg")是相对于 VSCode 启动目录,不是settings.json所在目录,极易误判
background.style 里必须写全关键 CSS 字段
只配 images 和 opacity 是不够的。背景图默认会盖在编辑器内容上方,导致无法点击代码、光标消失——根本原因是缺了 pointerEvents:"none"。
- 最小可用样式块应包含:
position、width、height、backgroundPosition、backgroundRepeat、backgroundSize、opacity、pointerEvents - 典型写法(适用于
vscode-background的style字段):"background.editor": { "images": ["file:///C:/bg/code.jpg"], "opacity": 0.12, "style": { "position": "absolute", "width": "100%", "height": "100%", "backgroundPosition": "center", "backgroundRepeat": "no-repeat", "backgroundSize": "cover", "opacity": 0.12, "pointerEvents": "none" } } -
backgroundSize选"cover"(填满但可能裁剪)还是"contain"(完整显示但留黑边),取决于图片比例和你的容忍度
重启或重载窗口才生效,且容易被其他插件干扰
改完 settings.json 后,保存 → 按 Ctrl+Shift+P → 输入 Developer: Reload Window 执行重载。直接关再开有时也不行,因为插件状态可能没清干净。
- 如果重载后仍没反应,检查是否有其它 UI 类插件(如
Bracket Pair Colorizer、Custom CSS and JS Loader)与背景插件冲突——后者在新版 VSCode 中已被禁用,强行启用会导致整个背景功能失效 - 临时验证是否生效:把
background.enabled设为false,重载,再设回true,观察变化 - 轮播功能(
interval)只在vscode-background中有效,background-cover不支持;若想换图,得手动改images数组
真正卡住人的从来不是“怎么加图”,而是路径协议写错、pointerEvents 漏掉、插件类型混淆这三处。改配置前,先确认插件名、查它最新文档里的 key 名,比反复重启试错快得多。











