SQL语法高亮不生效主因是文件未被识别为SQL,需手动切换右下角语法为SQL(非MySQL/PL/SQL),再右键标签选“Apply to All Files with Same Extension”;若无SQL选项,则用Package Control安装sublimelsp的SQL包。

SQL 语法高亮不生效,90% 不是插件没装,而是 Sublime 根本没把文件当 SQL 看——右下角显示 “Plain Text” 或 “MySQL” 就说明识别错了。
怎么让 .sql 文件一打开就有高亮?
Sublime 默认不保证 .sql 文件自动绑定 SQL 语法,尤其新装或重装后。手动切一次,再“记住”它:
- 打开任意
.sql文件 → 点右下角当前语法名(如Plain Text)→ 选SQL(注意:不是MySQL、PL/SQL,那是子集,关键字和括号匹配逻辑不同) - 切换成功后,右键该文件标签 →
Set Syntax: SQL→ 再点Apply to All Files with Same Extension - 如果列表里压根没有
SQL选项,说明缺核心语法包:按Ctrl+Shift+P→ 输入Package Control: Install Package→ 搜索并安装SQL(作者必须是sublimelsp,别装错同名旧包) - 验证:写一行
SELECT * FROM users;,SELECT和FROM应立刻变蓝/粗体;否则检查Packages/SQL/SQL.tmLanguage是否存在
PostgreSQL / Hive / Spark SQL 高亮乱码怎么办?
标准 SQL 语法包对 $$ 块、QUALIFY、LATERAL VIEW 等方言关键词着色不准,这不是 bug,是 scope 不匹配。
- 右下角点击语法名 → 选对应方言:
PostgreSQL、HiveQL、Spark SQL(如果有)——这直接影响注释行为、括号配对和关键字识别 - 若没有 HiveQL 选项:下载
Hive.sublime-syntax,放进Packages/User/目录,再通过View → Syntax → Open all with current extension as…绑定.sql - 别用
SQL (Improved)这类非官方包:更新停滞,遇到INSERT ON CONFLICT就直接高亮断掉,光标跳转也失灵
格式化后关键字全变小写,表名被改写?
很多插件默认把所有标识符转小写,而 MySQL(lower_case_table_names=0)或生产环境字段名大小写敏感,直接导致执行报错。
-
sqlparse默认不改标识符大小写,但部分插件(如过时的SQLBeautify)会强制转小写,配置项"identifier_case": "preserve"才安全 - 真正可控的方式是用
SQLTools+sqlformat:在用户设置中只填"formatter_args": ["--reindent"],不加--keywords-upper(它会导致解析崩溃,报Unexpected keyword) - 确认
pip install sqlparse是全局安装,不是在虚拟环境中——Sublime 默认调用系统 Python,装错环境就静默失败
最容易被忽略的是:语法识别和格式化器是两套独立机制。即使 sqlparse 装好了,右下角还是 Plain Text,格式化命令照样不会触发——先确保语法对了,再调工具。

















