sublime text 需安装 sqlbeautify 插件实现 sql 格式化,推荐配置 keyword_case 为 "upper"、comma_style 为 "after"、indent_after_each_comma 为 true,并手动选中纯 sql 块操作,复杂查询仍需人工微调。

Sublime Text 里没有原生 SQL 格式化功能
Sublime Text 本身不带 SQL 格式化能力,直接按 Ctrl+Shift+P 搜 Format 是找不到对应命令的。想一键美化 SQL,必须装插件——而且得选对,否则容易格式错乱、关键字变小写、或把 WHERE 后面的换行全吃掉。
推荐插件:SQLBeautify(轻量、可控、支持自定义)
比老牌的 SQLTools 更专注格式化,不附带数据库连接等冗余功能,配置项少但关键参数都可调。安装后默认绑定快捷键 Ctrl+Alt+B(Windows/Linux)或 Cmd+Alt+B(macOS),触发即生效。
- 安装方式:通过
Package Control→Install Package→ 搜SQLBeautify - 核心配置在
Preferences → Package Settings → SQLBeautify → Settings,重点关注:"keyword_case"(设为"upper"防止select变小写)、"comma_style"(设为"after"让逗号在行尾而非行首) - 不支持嵌套子查询自动缩进?那是
"indent_after_each_comma"没开——把它设为true
格式化前先确认光标位置和选区范围
SQLBeautify 默认只格式化当前选中的文本;没选中时,它会尝试识别光标所在完整语句(靠分号 ; 或空行判断)。但实际中常出错:
- 多条语句连写没加分号 → 它只格式化第一条
- 光标停在注释里 → 可能报错
No SQL statement found - 选中含非 SQL 内容(比如 Python 字符串包裹的 SQL)→ 格式化后引号错位、换行混乱
稳妥做法:手动用鼠标或 Ctrl+L 选中纯 SQL 块,再按快捷键。
复杂 JOIN 或 CTE 场景下仍需人工微调
自动格式化对 WITH 子句、多层嵌套 SELECT、含窗口函数的 OVER (PARTITION BY ... ORDER BY ...) 支持有限。常见问题包括:
-
OVER括号内内容被强行折成多行,破坏可读性 -
JOIN条件里的AND被移到下一行,导致逻辑断层 -
UNION ALL前后空行丢失,块与块粘连
这时候别硬依赖一键操作——先格式化主干,再用 Ctrl+Shift+A(Select All)配合手动删空行或缩进,比反复调参数更省时间。











