原版 sql beautify 插件在 sublime text 4 上不可用,因依赖已废弃的 sublime_api 模块;推荐替代方案 sublime-text-sql-formatter,需配合 sqlformat 等后端工具使用,并通过配置 "args": ["--reindent", "--keyword-case=upper"] 统一关键字大写。

SQL Beautify 插件在 Sublime Text 4 上还能用吗
不能直接用了。原版 SQL Beautify 插件依赖已废弃的 sublime_api 模块,Sublime Text 4 启动时会报错 ImportError: No module named 'sublime_api',插件根本加载不起来。
真正能用的替代方案是 Sublime-Text-SQL-Formatter(注意名字带连字符),它基于外部命令行工具(如 pg_format 或 sqlformat)工作,和 Sublime 版本解耦,兼容性好。
- 别搜 “SQL Beautify”,搜
Sublime-Text-SQL-Formatter才对 - 安装前先确认系统里有没有装好后端格式化工具(见下一条)
- 插件本身不带格式化引擎,只负责调用命令——没装后端,右键菜单里“Format SQL”选项是灰色的
怎么配 sqlformat 让 Sublime 能调用它
推荐用 Python 生态的 sqlformat(python-sqlparse 提供),安装简单、支持 MySQL/PostgreSQL/SQLite 语法,且无需数据库连接。
终端执行:
pip install sqlformat
然后在 Sublime 的插件设置里(Preferences → Package Settings → SQL Formatter → Settings),填上完整路径(尤其 Windows 用户):
- macOS / Linux:
"command": "sqlformat"(确保sqlformat在$PATH中) - Windows:
"command": "C:\Python39\Scripts\sqlformat.exe"(用双反斜杠,路径以实际为准) - 加参数更可控,比如:
"args": ["--reindent", "--keyword-case=upper"]
选中一段 SQL 后按 Ctrl+Shift+P 没反应?检查这三点
常见不是插件坏了,而是触发条件没满足。
- 文件语法必须设为
SQL(右下角状态栏点开,选SQL;或快捷键Ctrl+Shift+P→ 输入Set Syntax: SQL) - 选中的文本得是纯 SQL(不能混着
print("...")或注释块之外的 Python 代码) - 如果用了自定义连接符(比如
$$包裹函数体),sqlformat默认不识别,得加参数--dialect=postgresql并确认版本 ≥ 0.4.2
格式化后关键字全小写了?怎么统一转大写
sqlformat 默认保持原始大小写,但可通过参数强制转换。关键是把 --keyword-case 写进插件配置的 args 里:
-
"args": ["--reindent", "--keyword-case=upper"]→ 所有SELECT/FROM变大写 -
"args": ["--reindent", "--identifier-case=lower"]→ 表名、字段名变小写(慎用,可能影响大小写敏感的 DB) - 不支持混合策略(比如关键字大写 + 函数名首字母大写),这是
sqlformat的能力边界
复杂嵌套或窗口函数(OVER(PARTITION BY ...))可能被错误折行,这时候与其调参数,不如临时切到 pg_format(需 PostgreSQL 环境)——但多数人没必要折腾到底。











