图标不显示主因是主题未启用、配置被覆盖或语言识别错误;需检查workbench.icontheme值是否合法、禁用冲突颜色主题、确保仅启用一个图标扩展、修正files.associations语言映射,并确认explorer: show icons已开启。

图标不显示,90%不是插件没装,而是主题没“上场”、配置被静默覆盖、或语言识别断链——三者缺一不可。
确认 workbench.iconTheme 是否被设为 null 或空字符串
VSCode 对 workbench.iconTheme 的校验极严格:值为 null、""、"none" 或拼写错误(如 "vscode-icon" 少个 s),都会导致图标主题静默失效,且不报错、不提示、状态栏也不显示主题名。
- 打开
Preferences: Open Settings (JSON),搜索workbench.iconTheme - 检查用户级设置(全局)和工作区级
.vscode/settings.json两处是否都存在该字段,且值为合法字符串(如"vscode-icons") - 若发现
"workbench.iconTheme": null或被注释掉,直接删掉整行——让 VS Code 回退到默认行为 - 别信界面设置里的勾选框,它可能只是视觉反馈;最终以 JSON 文件内容为准
排查图标主题是否被颜色主题或其它扩展劫持
某些热门颜色主题(如 OneDark-Pro、SynthWave '84)会在激活时自动把 workbench.iconTheme 清空为 null 或 "",且不提示。这不是 bug,是它们的“设计选择”。
- 临时禁用当前颜色主题,执行
Preferences: File Icon Theme再选一次vscode-icons - 检查扩展页中是否同时启用了多个图标主题(如
vscode-icons和material-icon-theme)——VS Code 只允许一个生效,其余静默丢弃 - 对疑似冲突的插件,右键 →「禁用」而非「卸载」,避免残留无效主题 ID
- 禁用后务必完全退出 VS Code(不是重载窗口),再启动,否则缓存不刷新
验证文件语言识别是否正确,否则图标无从匹配
图标主题靠的是语言 ID(language ID),不是文件后缀。比如 .env.local 若被识别为 plaintext,而主题只给 shellscript 提供锁形图标,那它就只能显示默认文档图标。
- 打开一个图标异常的文件,看右下角状态栏显示的语言模式(如
Plain Text) - 点击该语言标识,手动切换为正确语言(如
Shell Script、Markdown) - 若切换后图标立刻出现,说明需补全
files.associations配置 - 在
settings.json中添加:"*.env": "shellscript"(注意:键必须带引号,值小写,不能写成js或jsx这类非法 ID)
侧边栏活动栏图标消失?重点查 views.containers 注册与视图开关
像 CodeGeeX、Codex 这类带侧边栏图标的插件,图标消失往往和 package.json 中的 contributes.viewsContainers 声明缺失、或 Explorer: Show Icons 总开关关闭有关。
- 进入插件安装目录(Windows:
%USERPROFILE%\.vscode\extensions\aminer.codegeex-*),打开package.json - 搜索
views.containers,确认存在类似{"id": "codegeex", "title": "CodeGeeX", "icon": "media/icon.svg"}的结构 - 若缺失或
id字段为空/错误,需从 GitHub release 下载同版本源码,复制完整区块替换 - 右键左侧活动栏空白处,查看菜单中是否有
CodeGeeX选项;若没有,说明容器注册失败 - 搜索设置项
Explorer: Show Icons,确保已启用——这是全局总闸,关了它,所有文件图标都不渲染
真正卡住人的,往往是 workbench.iconTheme 被工作区设置覆盖 + files.associations 未配 + 活动栏总开关被误关这三者的组合。它们都不报错,只默默让图标消失,你得一层层剥开看。











