装了file-icons却没图标,主因是Atom v1.60+与旧版插件不兼容或grammar识别错误;图标依赖右下角显示的语言类型而非文件后缀,需安装v2.1.45兼容版、启用tree-view的Show Icons开关并强制重载窗口。

装了 file-icons 却没图标?不是插件坏了,八成是 Atom v1.60+ 和默认安装的旧版插件不兼容,或者 grammar 没识别对——图标显示根本不管后缀名,只认右下角状态栏里写的那个语言类型。
为什么 tree-view 里全是空白方块或文档图标
Atom v1.60 起彻底重构了 DOM 结构,而 apm install file-icons 默认拉的是已停更的主干分支(v2.1.x),样式注入直接失败。现象就是:Settings 里插件显示 enabled,但文件名左边空着,或者只显示灰色纸张图标。
- 必须装兼容版:
apm install https://github.com/file-icons/atom/releases/download/v2.1.45/file-icons-2.1.45.tgz - 装完进
Settings → Packages → file-icons → Settings,勾选Show icons in tree view和Display file names to the right of icons - 按
Ctrl+Alt+R(Windows/Linux)或Cmd+Alt+R(macOS)强制重载窗口,CSS 才会重新注入 - 如果右下角显示
Plain text,哪怕文件叫index.js,file-icons也不会给 JS 图标——它依赖 grammar,不是后缀匹配
自定义 .env 或 .config.js 图标为什么没反应
项目级规则只认项目根目录下的 .file-icons 或 config.cson,写在 ~/.atom/config.cson 里完全无效;而且匹配靠 priority 决定谁生效,不是“后写覆盖前写”。
- 想让所有
.env显示锁图标,项目根目录建.file-icons,内容为:"*": "file-icons": "associations": ".env": "lock"
- 要匹配
.config.js,得用正则并加i标志:match: /\.config\.js$/i,漏掉i就匹配不到Webpack.config.js - 想只给
src/test/下的 JS 加测试图标,必须启用路径匹配:matchPath: true+match: /src\/test\/.*\.js$/ -
priority不写默认是 0;设成priority: 2的规则,会压过没写 priority 的同名匹配
图标错位、颜色发灰、文字被截断怎么办
这不是 file-icons 的 bug,是 Atom 自身对图标宽度估算不准,或 UI 主题 CSS 覆盖了颜色变量。别动插件源码,改 ~/.atom/styles.less 更安全。
- 图标挤右边或太窄:
.tree-view .icon:before { width: 16px !important; } - 文件名被挡住:
.tree-view .file .name { padding-left: 24px; } - 颜色不对,先查主题是否禁用了
.icon的display属性;再确认tree-view设置里的Show Icons开关是否真开着(这个开关默认开启,但手动关过就不会自动恢复) - 高 DPI 屏幕模糊?临时加
"*": {"core": {"windowZoomLevel": 0}}到~/.atom/config.cson
真正容易被忽略的是:图标能否显示,最终取决于 tree-view 插件本身的 Show Icons 开关——它独立于 file-icons 存在,重装插件不会重置它,也从不自动打开。

















