必须先安装图标扩展,再通过命令面板启用对应主题(如vscode-icons),并确保workbench.iconTheme值与扩展Identifier完全一致;自定义文件或文件夹图标需按扩展要求配置associations字段。

必须先装扩展,再配 workbench.iconTheme,否则任何配置都无效。
装完扩展后图标还是默认样式?检查是否真正启用了主题
VSCode 不会自动把刚装的图标扩展设为当前主题——它只安装,不激活。很多人卡在这一步,以为装完就该有图标了。
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Preferences: File Icon Theme,回车 - 从弹出列表中选你装的扩展对应的主题名,比如
vscode-icons或Material Icon Theme,不要选None - 确认右下角状态栏出现图标主题名称(如
vscode-icons),没出现说明没生效 - 如果命令面板里根本没列出你的主题,大概率是扩展 ID 拼错了,或者扩展没启用(去扩展面板看「已启用」标签)
workbench.iconTheme 配置写错位置或值就白搭
这个字段只能写在用户设置或工作区 settings.json 里,不能靠插件自己“默认注册”。而且值必须和扩展页面右上角显示的 Identifier 完全一致。
- 合法值示例:
"vscode-icons"、"material-icon-theme";错误写法:"VsCode Icons"、"vscode_icons"、null、空字符串 - 多根工作区下,某个子文件夹的
.vscode/settings.json若含"workbench.iconTheme": null,该文件夹图标会强制退回到默认文档图标 - 改完保存后通常立即生效;若没反应,优先执行
Developer: Reload Window,比重启整个 VSCode 快得多
让 .env、vite.config.ts 这类文件也显示图标?得手动配 associations
主流图标主题默认只覆盖常见后缀(如 .js、.json、.gitignore),自定义配置文件需手动映射,但字段名和图标名都严格绑定扩展本身。
-
vscode-icons用vsicons.associations字段,例如:"vsicons.associations": { "vite.config.ts": "typescript" } -
material-icon-theme用material-icon-theme.files.associations字段,例如:"material-icon-theme.files.associations": { "*.env.local": "tune", "Dockerfile": "docker" } - 键名必须是文件名或通配符(如
"*.env"),不能带路径;值必须是该主题实际支持的图标标识符(查其 GitHub README 的 icon list,写成tune-icon或env都不识别)
文件夹图标不显示?不是所有主题都支持,且配置方式不同
vscode-icons 对文件夹图标的覆盖有限(如只认 src、node_modules),而 material-icon-theme 明确支持自定义文件夹图标,但语法更严。
- material-icon-theme 支持
material-icon-theme.folders.associations,例如:"material-icon-theme.folders.associations": { "components": "react", "lib": "library" } - 值(如
react、library)必须是该主题内置的文件夹图标名,拼错就 fallback 成默认文件夹图标 - 某些颜色主题(如 Minimal Theme)会主动禁用图标渲染,可临时切换为
Default Dark+测试是否恢复
最常被忽略的点:图标名不是随便起的,也不是文件后缀名,而是主题作者在代码里硬编码的标识符——查不到就配不上,配不上就永远显示问号或空白。别猜,直接翻扩展的 GitHub README。











