Pigments在Atom 1.59+上完全失效,唯一可行方案是手动安装v0.40.2并搭配Atom≤1.58.0;需配置Supported Grammars、禁用scanWholeProject、设Marker Type为dot,并重启生效。

Pigments 在 Atom 1.59+ 上根本装不上,也跑不了——不是你操作错,是它已彻底失效。 官方 apm 服务 2022 年底关闭,Atom 1.59 起移除了 Pigments 依赖的底层 API,任何“搜索安装”或 apm install pigments 都会失败或崩溃。唯一能用的路径,是手动装最后兼容版 v0.40.2,且必须搭配 Atom ≤1.58.0。
为什么 apm install pigments 总报错?
错误信息通常是 getaddrinfo ENOTFOUND atom.io 或启动后直接报 Cannot read property 'onDidChange' of undefined。这不是网络问题,也不是权限问题:前者是 apm 服务器永久下线,后者是 Atom 新版本删掉了 Pigments 调用的旧接口。
- Atom ≥1.59 → Pigments 必然崩溃,无法修复
- Atom 1.58.0 是最后一个稳定支持版本(官网仍提供下载)
- 必须手动安装
v0.40.2:GitHub 搜索atom-pigments/releases,下载 ZIP,解压后执行apm link --dev /path/to/pigments-0.40.2 - 执行完需重启 Atom,再进
Settings → Packages → pigments确认状态为 Enabled(灰色=未启用)
装好了却没颜色块?检查三个硬性条件
Pigments 不是“写哪亮哪”,它只在满足语法作用域、文件类型、配置项三者严格匹配时才扫描。缺一不可。
- 右下角状态栏必须显示
source.css、source.scss或text.html.basic(且光标在<style>块内);若显示text.plain或source.js却没配 Supported Grammars,它直接跳过整份文件 - 只识别字面量:
#ff0000、rgb(255,0,0)、red可以;var(--primary)、"#" + color、$color一律忽略 - 文件必须已保存(未保存时默认为
text.plain,Pigments 不处理) - 确认
Settings → Packages → pigments → Enable已勾选(常被忽略)
如何让 Vue/JS 文件里的颜色也高亮?
默认只扫 .css、.scss 和 HTML 的 <style> 块。Vue 的 <style scoped> 或 JS 中的 ctx.fillStyle = "#f00" 需手动授权扫描范围。
- 进
Settings → Packages → pigments → Settings - 在
Supported Grammars输入框添加对应语法作用域:source.css.vue(Vue style 块)、source.js(JS 全局)、text.html.basic(HTML 全局) - 若加了
source.js,务必同步填Ignore Scopes:例如string.quoted.other(跳过注释里的假颜色),否则大 JS 文件会卡顿 - 改完必须执行
Window: Reload或完全重启 Atom,配置才加载
颜色块延迟、Atom 卡顿怎么办?
Pigments 默认递归扫描整个项目目录,遇到 node_modules 或 dist 就开始吃内存,大型项目里尤其明显。
- 关掉
scanWholeProject(只处理当前打开的文件) - 在
ignoredNames中加入:node_modules、dist、build、.git - 删掉不用的
colorRegexps规则(比如项目不用hsl(),就去掉对应正则) - 禁用
showPalette(右下角颜色面板是持续监听的性能主力拖累) - 把
Marker Type改为dot:比outline或background渲染快,视觉干扰也小
真正麻烦的从来不是配置,而是 Atom 版本与 Pigments 的兼容边界——1.58.0 是分水岭,跨过去就只剩手动降级或换编辑器这一条路。如果你正在用 1.59+,现在停手去降级,比反复调试配置更省时间。

















