sublime text 中红色或绿色波浪线90%非语法错误,而是拼写检查或linter插件所致;确认是否为spell_check需看状态栏“spell check”字样或在控制台执行view.settings().get('spell_check');永久关闭应于用户设置中添加"spell_check": false,而非default settings;若为sublimelinter类插件引起,可通过命令面板临时禁用或在package settings中配置对应linter的disable选项;主题渲染、emmet自动标记等也可能导致下划线,需逐一排查。

Sublime Text 里那些红色或绿色波浪线,90% 不是语法错误,而是拼写检查或第三方 Linter 插件在“多管闲事”。关掉它们不难,但得先分清是谁画的线——关错地方白折腾。
怎么确认下划线是 spell_check 引起的?
拼写检查只在特定条件下激活,不是默认全局开着的。唯一可靠信号是状态栏右下角显示 Spell Check。没这个字样,就不是它干的。
- 新建一个纯文本文件(
File → New File,再用Ctrl+Shift+P输入Set Syntax: Plain Text) - 输入明显错词,比如
recieve—— 如果有波浪线,说明spell_check确实启用了;如果没有,那红线大概率来自插件或主题 - 运行
view.settings().get('spell_check')在 Sublime 控制台(Ctrl+`)里查真实值,避免被项目设置或语法专属配置覆盖
永久关闭 spell_check 的正确写法
别改左侧的 Default Settings,那是只读的。只动右侧用户设置(Preferences → Settings – User),加这一行:
"spell_check": false
注意:"spell_check": "false"(字符串)或漏引号都会失效。保存后立即生效,无需重启。
- 如果某类文件(比如
.md)仍要拼写检查,就单独进该文件 →Preferences → Settings – Syntax Specific,设"spell_check": true - 某些插件(如 AutoFileName、Markdown Preview)自带词典逻辑,关
spell_check没用,得查插件文档找类似"markdown_spellcheck": false的字段 - 别碰
editor.spellCheck这种 VS Code 风格配置,Sublime 完全不认
如果是 SublimeLinter 类插件画的线
原生 Sublime 不做语法校验,所有带语义的波浪线(比如标出 consol.log 或未定义变量)都来自 SublimeLinter 及其子插件(eslint、flake8 等)。
- 临时关闭当前文件:按
Ctrl+Shift+P,输入SublimeLinter: Toggle Linting回车 - 永久禁用某个 linter:进
Preferences → Package Settings → SublimeLinter → Settings,在用户设置里写:"linters": { "eslint": { "disable": true } } - 插件名必须完全匹配(大小写、下划线都不能错),可在
Package Settings → SublimeLinter → Linters里确认已安装的列表 - 彻底卸载
SublimeLinter后,所有子检查器会失效,但插件文件还在Packages/目录里,重装就会恢复
还有红线?可能是主题或渲染问题
有些主题(如 ayu、Dracula)把 invalid 作用域也渲染成红色波浪线,实际是语法解析失败,和拼写、Linter 都无关。
- 临时切到默认主题(
Preferences → Color Scheme → Default → Monokai),看红线是否消失 - 检查是否误启用了
auto_markEmmet:Emmet 插件默认会为缩写加下划线,关它需在 Emmet 设置里加"auto_markEmmet": false -
"show_minimap": false这类写法对下划线无效,它只控制右侧小地图显示
真正麻烦的是多种机制叠加:比如 spell_check + SublimeLinter-eslint + 主题高亮同时生效,看起来像一条线,其实是三层叠在一起。逐个排查时,优先关最外层(命令面板临时开关),再动配置,最后验证控制台输出值——别靠猜。











