必须装sublimelinter框架、对应语言linter插件和系统级cli工具三者齐全,缺一不可;用户设置中须明确写"lint_mode":"save"并重启生效,否则保存不触发检测。

必须装 SublimeLinter 框架 + 对应语言的 linter 插件 + 系统级检查工具三者齐全,缺一不可;否则保存时不会触发任何检测。
SublimeLinter 用户设置里必须写 "lint_mode": "save"
默认配置是 ["on_load", "on_modified"],意味着你敲每个字符都在调用 flake8 或 eslint,不仅卡顿,还常因未闭合引号等中间态误报。
只保留保存时触发,需在 Preferences → Package Settings → SublimeLinter → Settings 的用户配置(右侧面板)中明确写入:
{
"lint_mode": "save",
"delay": 0.5,
"show_marks_in_minimap": false
}
-
"lint_mode": "save"是唯一可靠取值;"background"或带方括号的["on_save"]在旧版本中可能被忽略 -
"delay"对save模式实际无效,但某些版本会误读,设为0.5是防兼容问题的惯用做法 - 别信“自动生效”——改完必须重启 Sublime 或至少关闭再重开当前文件,否则设置不加载
为什么保存后没反应?90% 是环境链断了
终端能跑 eslint --version,但 Sublime 里 SublimeLinter: Show All Errors 显示 No lint results,大概率是 Sublime 没读到你的 shell PATH:
- macOS/Linux:确认
~/.zshrc或~/.bash_profile中export PATH已生效,且 Sublime 是从终端启动(subl .),否则它用的是系统默认 PATH - Windows:检查系统环境变量是否包含
Python Scripts目录(如C:UsersXXXAppDataRoaming pm或PythonScripts) - PHP 场景下:
php -v必须能在终端返回版本;若 PHP 装在非标准路径(如 WAMP),得在 SublimeLinter 用户设置里加"executable": "C:\wamp64\bin\php\php8.2.0\php.exe",注意反斜杠要双写
文件右下角显示的语法模式必须匹配 linter 插件
SublimeLinter 不会主动介入 Plain Text 模式下的文件——哪怕内容全是 Python 代码。常见失效场景:
- 打开
.conf文件,右下角显示Plain Text:点那里手动选NGINX,再执行View → Syntax → Open all with current extension as…绑定后缀 -
.vue文件没标错:说明没装Vue Syntax Highlight插件,或SublimeLinter-eslint默认不处理<script></script>块,需额外配eslint-plugin-vue -
.env文件被当成纯文本:原生不识别,得装ApplySyntax插件,并在规则里加"first_line_match": "^export "才能触发ShellScript检查
Rust Enhanced 的 rust_syntax_checking 是独立机制
它不依赖 SublimeLinter,而是直接调用 cargo check 或 cargo clippy。启用方式完全不同:
- 进
Preferences → Package Settings → Rust Enhanced → Settings - User - 确保有:
"rust_syntax_checking": true和"rust_syntax_checking_method": "check" - 不用装 SublimeLinter 或额外 linter 插件,但要求本地已安装 Rust 工具链,且
cargo在 PATH 中 -
"rust_syntax_checking_include_tests": true决定是否检查#[cfg(test)]块,关掉能提速
不同语言的保存检测机制互不兼容,Rust Enhanced 和 SublimeLinter 不能混用同一套配置逻辑。最易被忽略的是:你可能同时装了两者,却只调了一边的设置,另一边静默失效。











