SublimeLinter 需配合对应 CLI linter(如 flake8、eslint)才能工作,配置优先级为项目级 .sublimelinterrc > 用户设置,on_save 可提升性能,编码/BOM/换行符问题易致行号偏移。

SublimeLinter 安装后没反应?先确认 linter 引擎是否装对了
SublimeLinter 本身只是调度器,不带任何语言检查能力。它必须配合具体 linter(比如 eslint、pylint、flake8)才能工作。
- 常见错误:只装了
SublimeLinter插件,但没在系统里装对应语言的 CLI 工具——结果打开文件完全没提示,以为插件坏了 - Python 项目要高亮 PEP8 问题,得先全局或项目级装好
flake8:pip install flake8;再确保 Sublime 能调到它(路径正确或加进PATH) - JavaScript 项目用
eslint,不能只装eslint包,还得初始化配置:npm init @eslint/config,否则报ESLint configuration not found - Windows 用户容易卡在路径:Sublime 默认找不到 npm 全局 bin 目录,得在 SublimeLinter 设置里手动填
executable,比如:"executable": ["C:\Users\xxx\AppData\Roaming\npm\eslint.cmd"]
配置文件写在哪?优先级怎么排?
SublimeLinter 支持多层配置,但顺序错一点就失效——它不会报错,只会静默 fallback 到默认行为。
- 最高优先级是项目根目录下的
.sublimelinterrc(JSON 格式),不是.sublimelinterrc.json,少后缀就无效 - 次级是 SublimeLinter 的用户设置:
Preferences → Package Settings → SublimeLinter → Settings,里面改linters和paths - 注意
disable字段位置:它得写在每个 linter 的子配置里,比如eslint.disable,而不是顶层disable;写错等于没关 - 如果用了
eslint,又在项目里有.eslintrc.js,SublimeLinter 会自动读——但若你同时在 Sublime 设置里写了args,比如--config ./my.eslintrc,就可能覆盖掉 JS 文件里的 extends 配置,导致规则不一致
保存时才检查太慢?试试 on_save 和 on_load 的区别
默认 SublimeLinter 是 on-load + on-modify,实时检查每敲一个字都跑一遍,小文件没问题,大文件或复杂规则(比如 eslint-plugin-react)会卡 UI。
-
"on_save": true在 Settings 里设成true,能明显提速,但代价是:改完代码不保存就看不到报错 - 更实用的是组合策略:对 JS/TS 开
on_save,对 Python 保留on_modified(因为flake8快);靠selector字段按语法区分:"selector": "source.python" - 别忽略
delay参数:它是防抖时间(毫秒),默认 0.3s。如果觉得响应滞后,可降到100;但设太低(比如10)会让频繁输入时 CPU 暴涨 - 某些 linter(如
golint)不支持增量检查,强制开on_modified只会让它反复全量扫描,反而更卡——这种就得切回on_save
报错位置偏移、行号错乱?十有八九是编码或 BOM 问题
SublimeLinter 依赖 linter 输出的标准格式(通常是 file:line:col:message),一旦源文件编码异常,解析就会失准。
- 常见现象:错误标在第 5 行,实际问题在第 3 行;或者所有错误都偏移 +1 行——大概率是文件带 UTF-8 BOM 头,而 linter(如
eslint)输出的行号没算 BOM 字节 - 解决办法:在 Sublime 里用
File → Reopen with Encoding → UTF-8,再Save with Encoding → UTF-8(去掉 BOM) - 另一个坑是换行符混用:
和并存时,某些 linter 解析行号会出错;统一用View → Line Endings → Unix更稳妥 - 如果用了 Prettier + ESLint 组合,且开了
prettier-eslint,注意它内部会先格式化再 lint,若格式化前后缩进变化(比如空格变 tab),也可能导致行号漂移
真正麻烦的从来不是装不上,而是它“看起来在工作”,其实漏检、误标、或规则根本没生效——盯住 linter 的 CLI 输出(打开 Sublime 控制台看 SublimeLinter: eslint: xxx.js ERROR 日志)、确认编码、核对配置层级,比重装插件有用得多。

















