sublime text语法检查需sublimelinter框架+语言专用插件+系统工具三者协同;缺一不可,否则无报错提示。必须装对插件(如sublimelinter-php)、配准php/flake8等可执行路径、设lint_mode为load_save或save,并确保文件被正确识别为对应语言。

Sublime Text 本身不带语法检查能力,所有“代码错误提示”都依赖外部工具 + SublimeLinter 框架组合实现;没装对插件、没配好路径、没选对语法模式,90% 的报错不显示问题都出在这三处。
SublimeLinter 必须和语言专用 linter 插件一起装
SublimeLinter 只是调度器,不负责具体检查。比如要查 Python 错误,得同时装:
-
SublimeLinter(核心框架) -
SublimeLinter-flake8或SublimeLinter-pycodestyle(Python 检查器) - 系统级工具:终端里能直接运行
flake8 --version,否则插件找不到命令会静默失败
常见错误现象:装了 SublimeLinter 就以为万事大吉,结果保存 .py 文件毫无反应。原因就是缺语言插件,或系统没装 flake8。
PHP 语法检查必须确认 php 命令在 PATH 中
SublimeLinter-php 本质是调用 php -l 做语法校验,它不自带 PHP 解释器。
- 在终端执行
php -v,必须返回版本号;否则插件启动时找不到php,连日志都不打 - 如果 PHP 装在非标准路径(如 WAMP 的
C:wamp64inphpphp8.2.0php.exe),需在 SublimeLinter 用户设置里加"executable": "C:\wamp64\bin\php\php8.2.0\php.exe" - Windows 用户注意:
cmd字段中路径反斜杠必须双写,单写会被当成转义符
lint_mode 设为 load_save 才能在保存时触发检查
默认 lint_mode 是 background,但后台检查容易被跳过——尤其文件较大、CPU 占用高时,SublimeLinter 会主动降频或放弃。
- 打开
Preferences → Package Settings → SublimeLinter → Settings - 在用户配置中明确写:
"lint_mode": "load_save" - 确保右下角状态栏显示的是
Python或PHP,不是Plain Text;否则SublimeLinter-flake8根本不介入 - 改完设置后,保存一次文件,看左侧行号旁是否出现小红点;没有就说明语法识别失败或 linter 未启动
拼写检查和语法检查是两套完全独立的机制
很多人混淆 spell_check 和 SublimeLinter:前者只标英文单词拼错(且默认不扫代码区),后者才报 SyntaxError: invalid syntax 这类真错误。
-
spell_check开启后,在.py文件里只会检查字符串和注释里的英文,变量名recieve写错了也不会标红 - 想让注释也参与拼写检查,必须装
Spell Check Comments插件;原生spelling_selector设置极难配准,基本不可靠 - 二者共存没问题,但别指望开一个就能解决两类问题——这是两个不同维度的检测,底层机制、触发条件、作用域全都不一样
最容易被忽略的一点:SublimeLinter 的报错位置依赖语法高亮作用域(scope)。如果某个 .js 文件被错误识别为 JSON,或者 .vue 文件没加载 Vue 语法包,linter 就不会运行——它连“这是 JS 代码”都不知道,更不会去调 eslint。











