Pigments不会自动高亮颜色,因其依赖语法作用域、文件类型和配置项严格匹配;仅支持标准颜色写法,且默认只启用在.css等特定文件及HTML的块中。

pigments在 Atom 中不会自动高亮颜色,除非你明确满足它的识别条件——它不是“装上就用”的插件,而是依赖语法作用域、文件类型和配置项的严格匹配器。
为什么 #ff0000 写在 CSS 里没反应?
常见错误现象:background: #ff0000; 没出现色块,但 HTML 中 标签内却正常 → 这说明 pigments 的语法作用域没覆盖到当前文件或代码块。
- 只支持标准写法:
#abc、#aabbcc、rgb(255,0,0)、red等;不识别var(--primary)、color-mod()、"#" + color - 默认仅启用于
.css、.scss、.less、.sass文件,以及.html中的块(style=""内联属性不支持) - 检查当前文件右下角状态栏:是否显示
source.css或source.scss?若显示text.html.basic但不在内,也不会触发
如何让 pigments 支持 Vue 或 JS 字符串中的颜色?
需要手动扩展 Supported Grammars 配置,否则它根本不会扫描那些区域。
- 打开
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 文件会轻微卡顿 - 注意:添加后需重启 Atom 或重载窗口(
Window: Reload),配置才生效
pigments 和 highlight-selected 冲突怎么办?
两者同时启用时,光标所在颜色值可能被遮盖、闪烁或渲染异常——这不是 bug,是 Atom 渲染层对高频 DOM 更新的调度限制。
- 优先保留
pigments,禁用highlight-selected的Highlight on Right Click选项(在该插件 Settings 中取消勾选) - 或改用轻量替代:
minimap-highlight-selected,只在 minimap 小地图中标记重复项,不影响主编辑区 - 性能敏感时,把
pigments的Marker Type改为dot(比outline或background更快)
安装失败或启用后完全无响应?
官方 apm install pigments 在 Atom 1.58+ 版本已失效——GitHub 上的最新版 pigments 已停止维护,且与新版 Atom 不兼容。
- 唯一可行路径:手动安装最后兼容版本
v0.40.2 - 步骤:下载 ZIP 解压 → 终端执行
apm link --dev /path/to/pigments-0.40.2→ 重启 Atom - 确认启用状态:
Settings → Packages → 搜索 pigments → 点击 Enable 按钮(若为灰色则未启用)
- 如果仍不工作,检查
core.disabledPackages 是否误将pigments加入禁用列表
pigments的核心限制在于:它只做「静态文本匹配」,不解析变量、不执行 JS、不读取 CSS 自定义属性。任何试图让它理解动态颜色表达式的做法,都会失败。真正要解决颜色可视化问题,得接受它的边界——要么规整写法,要么换用支持运行时分析的现代工具(比如 VS Code 的 Color Highlight 插件)。










