装完 Material Icon Theme 后图标没变,是因为 VSCode 不自动启用图标主题,必须手动执行 Preferences: File Icon Theme 并选择该主题,再点击 Reload Window 才生效;否则即使 settings.json 中已配置 "workbench.iconTheme": "material-icon-theme" 也无效。

装完 Material Icon Theme 后图标没变,不是插件坏了,是 VSCode 坚决不自动启用——workbench.iconTheme 必须手动选中并重载窗口,否则所有后续配置都无效。
必须执行 Preferences: File Icon Theme 命令
VSCode 安装扩展只下载资源,不写配置、不激活主题。即使 settings.json 里写了 "workbench.iconTheme": "material-icon-theme",只要没走这一步,图标就永远是默认样式。
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入并执行Preferences: File Icon Theme - 从列表中**必须选中
Material Icon Theme**(不是Material Theme,那是 UI 颜色主题) - 右下角出现“Reload Window”提示后,**必须点它**;不重载,配置只是躺在文件里
- 如果命令面板里压根没这个选项,去扩展页检查:
material-icon-theme是否已启用(作者 PKief)、ID 拼写是否正确
给 .env.local、vite.config.ts 这类文件加图标
Material Icon Theme 默认只识别单段后缀(如 .js、.ts),对 .env.local、.prettierrc.cjs 这类多点后缀,它只取最后一段匹配(local、cjs),前面部分被忽略。
- 在
settings.json中添加"material-icon-theme.files.associations"字段 - 键名必须是以
.开头的扩展名或 glob 模式(如".env.*"),不能写"*.env"或"env.*" - 值必须是主题内置图标名(查 GitHub README 的
iconDefinitions列表),比如"gear"、"tune"、"docker",拼错会回退成问号 -
".env.*"中的*只匹配一级,.env.dev.local不会被覆盖,需单独加".env.dev.local": "gear"
src、lib、docs 等文件夹图标乱套了怎么办
文件夹图标靠名字硬匹配,但 material-icon-theme.folders.color 和 material-icon-theme.folders.associations 容易互相干扰,导致语义图标被染色或覆盖。
- 先关掉
Material Icon Theme: Folders Color(它会让所有文件夹统一着色,压掉 src、lib 的专属图标) - 在
settings.json中明确配"material-icon-theme.folders.associations",例如:"src": "src"、"lib": "library" - 大小写敏感,不能写成
"Src"或"LIB";嵌套文件夹如packages/my-lib不会自动匹配lib,得单独写"my-lib": "library" - 字段名必须是
material-icon-theme.folders.associations,拼错(如写成folders.associations)整段配置会被 VSCode 忽略
图标模糊、发灰、颜色错位的真实原因
这不是插件 bug,而是 VSCode 渲染层和 SVG 图标缩放之间的兼容性问题,尤其在高 DPI 屏幕(如 Windows 外接 4K 屏)上明显。
- 禁用其他图标主题插件(如
vscode-icons),二者冲突会互相覆盖 - 不要手动注入 CSS 修改图标颜色或尺寸——VSCode 升级后会失效,甚至拖慢启动
- 改用插件原生设置项:
Material Icon Theme: Saturation(建议 0.7)、Material Icon Theme: Opacity(建议 0.95) - 系统 DPI 缩放设为非整数倍(如 110%、115%)时,图标容易发虚;临时调低缩放(
Ctrl + -)可验证是否为此原因
最常被忽略的一点:多根工作区下,某个子文件夹的 .vscode/settings.json 若含 "workbench.iconTheme": null,该文件夹图标会强制退回到默认样式,且界面完全不提示。











