atom代码纠错需linter核心包、语言provider(如linter-eslint)和ui插件(如linter-ui-default)三者协同;缺一不可,且必须先装linter(steelbrain作者),再装provider并重启,否则静默失效。

Atom 本身不带代码纠错功能,所有波浪线、悬停提示、自动修复都依赖 linter 框架 + 对应语言 provider(如 linter-eslint)+ UI 插件三者协同;缺任何一个,你看到的都是“干净得可疑”的编辑器。
必须先装 linter 核心包,否则所有 provider 都注册失败
Atom 1.24+ 版本起,linter(作者 steelbrain)是硬性前置依赖。只装 linter-eslint 或 linter-flake8,插件会静默退出——设置页找不到配置项、命令面板搜不到 Linter: Toggle、保存后零反馈。
- 打开 Settings → Install,搜
linter,确认作者是steelbrain,点击 Install - 安装完必须重启 Atom(或执行
Window: Reload),否则 provider 加载不进生命周期 - 再单独安装语言插件:JavaScript 用
linter-eslint,Python 用linter-flake8,别选名字相似但作者不明的包 - 验证是否生效:打开一个 JS 文件,右下角显示
JavaScript语法,保存一个明显错误(如if (x = 1)),看是否有波浪线和悬停提示
linter-eslint 找不到配置?检查项目根目录和 ESLint 可执行路径
linter-eslint 默认只读取项目根目录下的 .eslintrc.js、.eslintrc.json 或 package.json 中的 eslintConfig 字段。没配置文件,它就直接跳过,不是报错,是彻底沉默。
- 在项目根目录运行
npm init -y && npm install eslint --save-dev,再执行npx eslint --init生成配置 - 如果用全局 ESLint,进
linter-eslint设置页,勾选Use global ESLint installation,并确认终端里eslint --version能正常输出 - Mac 用户常见问题:Atom GUI 启动时 PATH 不包含 nvm/yarn 的 bin 目录,改用终端执行
atom --new-window .启动可继承环境 - Vue 单文件组件需额外配置:
npm install eslint-plugin-vue eslint-plugin-html --save-dev,并在.eslintrc.js中加overrides指定processor: "vue/vue"
为什么标红了却点不动、悬停无提示?检查语法识别和作用域过滤
波浪线出现但交互失效,90% 是因为 Atom 没把当前文件识别为对应语法,或 linter 设置里误启用了作用域白名单。
- 看编辑器右下角:如果是
Plain Text或Auto,说明 grammar 没匹配上,手动点击切换为JavaScript、Python等 - 进
linter设置页,检查是否勾选了Only lint files matching these scopes;若已勾选,删掉内容或明确填入source.js、source.python - 确保
Lint on Change已开启(在linter-eslint设置中),否则只在保存时检查,实时性归零 - 波浪线颜色被主题覆盖?进
linter-ui-default设置页调高Error Color,或在 Atom Stylesheet 里加自定义 CSS 强制覆盖
自动修复(Fix on Save)不起作用?规则限制和冲突才是关键
Fix on Save 功能由 ESLint 自身的 --fix 能力驱动,不是 Atom 插件单方面控制。很多规则根本不可自动修复,比如逻辑错误、变量重命名、删除未使用函数。
- 在
linter-eslint设置中开启Fix on save,同时务必勾选Fixable Rules Only - 检查当前文件是否被
.eslintignore排除,或存在/* eslint-disable */注释 - 若同时装了
prettier-atom,二者格式化逻辑可能冲突;建议只留一个入口:Prettier 做格式,ESLint 专注报错 - TypeScript + JSX 混合文件需在
.eslintrc.js的parserOptions中显式声明project和tsconfigRootDir,否则--fix直接跳过整文件
真正容易被忽略的是:代码纠错不是“装完插件就自动跑”,它是文件语法识别、项目配置加载、Node 环境路径、规则可修复性四层条件叠加的结果。少满足一层,你就只能看着波浪线发呆。











