必须同时安装linter(steelbrain作者)、对应语言provider(如linter-eslint)和linter-ui-default;缺一不可,否则无波浪线、无提示、命令面板搜不到linter: toggle。

Atom 本身不带语法检查能力,装了插件却没波浪线、没悬停提示、命令面板搜不到 Linter: Toggle,基本可以断定是三层依赖缺了一环:必须同时装 linter(作者 steelbrain)、对应语言的 provider(如 linter-eslint)、以及 linter-ui-default。少一个,就“干净得可疑”。
为什么装了 linter-eslint 却完全没反应?
根本原因是 linter 是 Atom 1.24+ 强制拆分后的底层框架,只负责事件调度和诊断注册;linter-eslint 只是它的一个适配器,没 linter 就进不了生命周期。
- 打开 Settings → Install,搜
linter,确认作者是steelbrain,点击 Install - 安装完必须执行
Window: Reload(快捷键Cmd+Alt+R/Ctrl+Alt+R),否则 provider 不加载 - 再单独搜
linter-eslint安装,别选带-atom后缀或作者不明的同名包 - 验证方式:Settings → Packages →
linter-eslint→ Settings 页面能点开,右下角状态栏显示 “0 problems”(不是空白)
为什么波浪线有了但悬停无提示、点不动?
90% 是语法识别或作用域过滤问题,不是 Linter 本身失效。
- 看编辑器右下角:如果是
Plain Text或Auto,说明 grammar 没匹配上,手动点击切换为JavaScript、Python等 - 进
linter设置页,检查是否勾选了Only lint files matching these scopes;若已勾选,删空内容,或明确填入source.js、source.python -
linter-ui-default必须启用:Settings → Install → 搜linter-ui-default(作者也必须是steelbrain),安装后确认右侧开关为蓝色Enabled - 禁用
linter-gutter、linter-ui-plus等第三方 UI 插件,它们会压制默认渲染逻辑
为什么 .vue 文件里的 JS 不报错?
linter-eslint 默认只处理 .js 和 .jsx,.vue 被当 HTML 解析,<script></script> 块压根不进 ESLint 流程。
- 勾选
linter-eslint设置页中的Lint HTML Files - 项目里运行:
npm install eslint-plugin-vue eslint-plugin-html --save-dev - 在
.eslintrc.js中加overrides,显式指定处理器:overrides: [{ files: ["*.vue"], processor: "vue/vue", rules: {"no-unused-vars":"off"} }] - 注意:
processor: "vue/vue"依赖eslint-plugin-vue,没装它,ESLint 启动直接崩溃,不是静默失效
最容易被忽略的是 grammar 匹配和 scope 过滤——哪怕所有插件都装对了,右下角显示 Plain Text 或 Only lint files matching these scopes 里留着默认值,也会让整个检查链彻底失效。











