Sublime Text 4 中 SqlBeautifier 插件因依赖 Python 2 已失效,推荐使用 sqlformat 构建系统或 SqlFormatter 插件;前者需 pip install sqlformat 并配置 SQLFormat.sublime-build,后者通过 Package Control 安装即用,支持快捷键 Ctrl+Alt+F 和个性化设置。

Sublime Text 里 SQL 格式化不生效?先确认你装的是哪个插件
Sublime Text 默认不支持 SQL 格式化,SqlBeautifier 是一个老插件,依赖 Python 2 的 sqlparse,在 Sublime Text 4 + Python 3 环境下大概率报错或根本没反应。常见错误是右键菜单里看不到“Beautify SQL”,或者执行后提示 ImportError: No module named sqlparse。
- 如果你用的是 Sublime Text 4(2021 年后安装的),
SqlBeautifier基本不可用 - 插件仓库里已多年未更新,GitHub 主页最后提交是 2017 年
- 它不支持自定义缩进、关键字大小写、JOIN 换行等现代格式需求
推荐替代方案:使用 Pretty JSON + 自定义 build system(轻量可靠)
不用装插件,靠 Sublime 自带功能 + 一行 shell 命令就能格式化 SQL。前提是系统已安装 sqlformat(基于 sqlparse 的命令行工具,Python 3 兼容):
- 终端运行:
pip install sqlformat
- 在 Sublime 中新建
Tools → Build System → New Build System - 粘贴以下内容并保存为
SQLFormat.sublime-build:{ "cmd": ["sqlformat", "--reindent", "--keyword-case=upper", "-"], "selector": "source.sql", "stdin": true, "stdout": true }- 保存后,切换到 SQL 文件 →
Tools → Build System → SQLFormat - 选中 SQL 片段或全选 →
Ctrl+B(Windows/Linux)或Cmd+B(macOS)
如果坚持要用图形化插件:SqlFormatter(ST4 原生兼容)
SqlFormatter是目前少数持续维护、支持 ST4 的 SQL 格式化插件,通过 Package Control 安装即可用,无需额外配置 Python 环境:- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS)→ 输入Package Control: Install Package - 搜索并安装
SqlFormatter - 默认快捷键是
Ctrl+Alt+F(可右键菜单调用Format SQL) - 支持配置项(
Preferences → Package Settings → SqlFormatter → Settings),例如:"reindent": true"keyword_case": "upper""indent_width": 4
格式化后字段名/表名被转成大写?检查 sqlformat 的 --identifier-case 参数
sqlformat默认会把所有标识符(字段、表名)转成小写,容易和你原有命名风格冲突。这不是 bug,是它的默认行为。解决方法是在.sublime-build的cmd中加参数:- 保留原始大小写:加
--identifier-case=lower(默认)或--identifier-case=upper或--identifier-case=unchanged - 推荐改用:
"cmd": ["sqlformat", "--reindent", "--keyword-case=upper", "--identifier-case=unchanged", "-"]
- 注意:
unchanged在含引号的标识符(如"User_ID")下才真正保真;纯字母数字名仍可能被统一小写,这是sqlparse解析器限制
SqlFormatter插件适合不想碰终端、但又需要快捷键和 GUI 配置的人。别在SqlBeautifier上浪费时间,它现在连基本的 CTE(WITH子句)都常格式错。 - 保存后,切换到 SQL 文件 →










