sublime text 原生不支持 sql 格式化,需安装 sqltools 插件;安装后通过右键或命令面板调用“sqltools: format sql”,默认格式化选中内容,全文件需先全选,且须手动设置正确 sql 方言以避免大小写错误。

Sublime Text 里没有原生 SQL 格式化功能
Sublime Text 本身不带 SQL 格式化能力,Ctrl+Shift+P 搜 “Format” 也找不到对应命令。这不是你配置错了,是它真没这功能——得靠插件补上。
装 SQLTools 插件最省事(支持主流方言)
它不是纯格式化工具,但集成了语法高亮、连接管理、执行和格式化,对日常开发够用。安装后右键菜单或命令面板里会出现 SQLTools: Format SQL。
- 通过
Package Control → Install Package → SQLTools安装,别选名字相近的SQLFormatter(已多年未更新,不兼容 Sublime 4) - 默认只格式化选中内容;全文件格式化需先
Ctrl+A全选,再触发命令 - 支持
SELECT、INSERT、WITH等常见结构,但对嵌套过深的 CTE 或窗口函数缩进可能偏宽 - 不自动识别方言,需在文件右下角手动设为
SQL (MySQL)或SQL (PostgreSQL),否则关键字大小写可能错乱
Ctrl+Shift+P 找不到格式化命令?检查这三处
常见现象是插件装了,但命令不出现——大概率卡在这几个环节:
- 文件类型没设对:即使后缀是
.sql,Sublime 有时会误判成Plain Text,右下角点击切换为正确 SQL 变体 - 快捷键冲突:默认没绑定快捷键,得自己加。在
Preferences → Key Bindings里加一行:[{"keys": ["ctrl+alt+f"], "command": "sqltools_format_sql"}] - 插件依赖未满足:
SQLTools依赖SQLTools Core,如果只装了主插件没装 Core,命令面板里就搜不到Format SQL
格式化结果不理想?别硬调插件,先看 SQL 本身
很多“格式化失败”其实是 SQL 写法导致的解析歧义,插件没法智能纠错:
- 少括号、逗号错位、字符串里混了未转义的单引号,会导致格式化中途崩溃或输出乱序
- 用反引号(
`)包字段名时,某些方言(如 PostgreSQL)不认,SQLTools会直接跳过该段不处理 - 大段拼接的动态 SQL(比如含
CONCAT或变量占位符),建议先注释掉非核心部分再格式化,避免干扰解析器
真正难搞的是跨多表、带复杂子查询和函数嵌套的语句——这时候格式化只是辅助,读得清比排得齐更重要。










