必须安装 file-icons v2.1.45 兼容版并重载窗口,因 Atom v1.60+ 与旧版不兼容导致 CSS 未注入;图标显示依赖 grammar 而非后缀名,需手动切换或添加标识符;自定义图标规则须写在项目级 config.cson 并设 priority。

装了 file-icons 却没图标?不是插件坏了,八成是 Atom v1.60+ 和默认安装的旧版插件不兼容,或者右下角 grammar 没识别对——图标显示根本不管后缀名,只认状态栏里写的那个语言类型。
必须装 v2.1.45 兼容版,否则样式注入失败
默认 apm install file-icons 拉的是已停更的主干分支,与 Atom v1.60–v1.65 的 DOM 结构不兼容,CSS 根本不注入。现象是:Settings 里插件显示 enabled,tree-view 却只显示空白或灰色文档图标。
- 先卸载旧版:
apm uninstall file-icons - 再装兼容版:
apm install https://github.com/file-icons/atom/releases/download/v2.1.45/file-icons-2.1.45.tgz - 装完别只点 Restart —— 进
Settings → Packages → file-icons → Settings,勾选Show icons in tree view和Display file names to the right of icons - 最后必须执行
Application: Reload Window(快捷键Ctrl+Alt+R或Cmd+Alt+R),强制重载样式表
图标不显示?先看右下角 grammar 是不是 Plain text
file-icons 依赖 grammar 判断类型,不是靠文件后缀。一个 index.js 如果右下角显示 Plain text,它就拿不到 JS 图标。
- 手动切换 grammar:右键编辑区 →
Grammar→ 选JavaScript(或其他对应语言) - 长期错判可能是内容太短或缺标识,加
// @ts-check或"use strict";帮助识别 - 检查
tree-view设置页里的Show Icons开关是否真开着——这个开关默认开启,但手动关过就不会自动恢复
自定义图标要写对位置和 priority,项目级规则不认全局 config.cson
想让 .env 显示齿轮图标、*.test.js 显示测试图标,规则必须写在项目根目录下的 config.cson(不是 ~/.atom/config.cson),且靠 priority 控制生效顺序。
- 为
.env设图标:"Env File": icon: "gear" match: ".env" colour: "dark-blue" - 匹配所有测试文件(注意大小写):
"Test JS": icon: "test-js" match: /\.test\.js$/i priority: 2(漏掉i标志,MyTest.js就匹配不到) - 只给
src/test/下的 JS 加图标:matchPath: true+match: /src\/test\/.*\.js$/ - 多个规则匹配同一文件时,
priority数值大的优先;不写默认是 0
图标错位、文字被遮挡?改 styles.less,别碰插件源码
启用 Display file names to the right of icons 后,常见问题是图标挤右边、文字截断、颜色发灰。这不是插件 bug,而是 Atom 自身对图标宽度估算不准,或主题 CSS 覆盖了颜色变量。
- 修复图标宽度:
.tree-view .icon:before { width: 16px !important; }加到~/.atom/styles.less - 补足文件名左侧留白:
.tree-view .file .name { padding-left: 24px; } - 别动
packages/file-icons/styles/下的原始 CSS——升级后会被覆盖 - 颜色不对时,先查 UI 主题是否禁用了
.icon的display属性
真正麻烦的不是装不上,而是改了 config.cson 却没生效:检查是否漏了 priority 冲突、match 正则没加 i 标志、或者规则写在了全局配置里却期望只对某项目生效——它只认项目根目录下的那个。

















