a file icon 侧边栏图标需插件、主题、配置三者协同生效;.env、.toml等冷门后缀须手动映射内置图标名(如"env":"settings"),且主题必须支持对应class渲染,否则图标不显示。

Sublime Text 侧边栏的文件类型图标不是靠“设置开关”或“图标包安装”直接生效的,它依赖 A File Icon 插件注入 class + 当前 UI 主题渲染规则共同作用。装完插件没图标?大概率是主题没配对支持,而不是插件坏了。
为什么 .env、.toml 这类文件没图标?
默认只覆盖常见扩展名(.js、.py、.md 等),冷门后缀如 .env、.toml、.yml 不在内置映射表里。
- 打开
Preferences → Package Settings → A File Icon → Settings – User - 添加扩展名到
file_icons映射块,例如:{ "file_icons": { ".env": "dotfile", ".toml": "config", ".yml": "config" } } -
"dotfile"和"config"是 A File Icon 内置的图标名,不能随便写字符串 - 改完保存,不用重启,图标通常秒变;若不生效,执行命令面板里的
A File Icon: Rebuild Icons
Material Theme 下 .ts 图标显示为 JS,怎么换?
Material Theme 自带的图标映射优先级高于 A File Icon 的配置,它把 .ts 硬绑到了 typescript 图标,但如果你用的是旧版主题或图标缺失,就会 fallback 到 javascript。
- 先确认你用的是最新版 Material Theme(2026 年 5 月后发布的版本已修复多数 TS 映射)
- 检查用户设置中是否有
"material_theme_file_icons": true(必须显式开启才走主题内建图标逻辑) - 如果仍不对,可绕过主题,在
A File Icon的Settings – User中强制指定:"file_icons": { ".ts": "typescript" } - 注意:Material Theme 的
typescript图标只在启用colored_folders: true且主题资源完整时才正常渲染
想给 src/ 或 test/ 文件夹加专属图标?
做不到。A File Icon 不解析路径名,只识别文件类型——所有文件夹统一归为 folder 类型,共用同一组图标规则(icon-folder class)。所谓“按目录名定制图标”,Sublime 原生不支持,也没插件能稳定实现。
- 别在
folder_icons配置里写路径匹配逻辑,那字段只接受布尔值 - 有人试过用
CustomizeUI注入 CSS 伪类,但在 Sublime Text 4.4+ 上已失效,且会导致侧边栏滚动异常 - 真有强需求,只能手动改主题文件:搜索
"class": "icon_folder",然后基于layer0.tint做颜色区分(比如src/用蓝调,test/用绿调),但这属于视觉暗示,不是图标替换
最常被忽略的一点:图标是否显示,和 file_icons 设置项是否为 true 无关——它只控制插件是否运行;真正卡住图标的,永远是主题文件里有没有为 icon-file-xxx 这类 class 定义 layer0.texture 和 layer0.tint。别在设置里反复调参,先看主题源码里有没有对应 rule。











