SQL Beautify 插件不生效主因是Python环境、命令路径或方言兼容性问题:需确认python和sqlparse全局可用,插件配置中command路径正确(如Windows填python、macOS/Linux填python3),且仅sqlparse基础缩进有效;关键字大小写需换用sql-formatter+NodeRequirer并设"keywordCase":"upper";选中文本无反应需检查语法scope是否为SQL;PostgreSQL/Hive等方言须显式指定language;调试优先查看Sublime控制台报错。

SQL Beautify 插件安装后不生效?检查 Python 环境和命令路径
Sublime Text 本身不带 SQL 格式化能力,依赖外部工具(如 sqlparse 或 pg_format)驱动。插件如 SQLBeautify 或 SublimePrettyJson(误用时)常卡在这一步。
- 确认系统已安装 Python:终端运行
python --version或python3 --version -
sqlparse必须全局可用:pip install sqlparse(不是pip3 install sqlparse后只在 py3 环境生效,而 Sublime 可能调用的是系统默认 python) - 插件配置中
command路径要写对:比如 Windows 下可能需填python,macOS/Linux 下可能是python3,不能直接写sqlparse - 部分插件(如
SQLTools)依赖node,需额外装npm install -g sql-formatter并指定node路径
SQLBeautify 插件设置 indent_size 和 keywords_uppercase 不起作用?
该插件默认只做基础换行缩进,不处理大小写或关键字格式。它的配置项实际作用有限,且不读取 .sqlparse 配置文件。
- 修改插件用户配置(
Preferences → Package Settings → SQLBeautify → Settings – User)时,必须严格使用 JSON 格式,字段名不能拼错(如"indent_size"不是"indentSize") -
"keywords_uppercase": true仅影响部分关键字(SELECT/FROM),对AS、ON、WHERE等无效 —— 这是sqlparse库本身的限制 - 若想完整控制大小写,得换用
sql-formatter+NodeRequirer插件,并在配置中启用"keywordCase": "upper"
选中 SQL 片段后按快捷键无反应?确认语法识别和作用域
Sublime 默认不会把 .txt 或未关联的文件当成 SQL 处理,插件只在匹配的 scope 下激活。
- 右下角查看当前语法是否为
SQL(点击后选择SQL → SQL),不是Plain text或MySQL(某些旧插件不认这个 scope) - 快捷键绑定(如
ctrl+alt+b)只对全文件生效,选中文本后需确认插件是否支持 selection mode ——SQLBeautify支持,但SQLTools默认只格式化整个 buffer - 若在代码块里(如 Python 字符串内嵌 SQL),需手动切换语法为
SQL,否则插件无法识别内容为 SQL
PostgreSQL / Hive / SparkSQL 等方言格式化失败?别硬套通用配置
标准 sqlparse 对非 ANSI SQL 支持弱,遇到 $$ 匿名块、LATERAL VIEW、/*+ MAPJOIN */ 注释会直接报错或错乱缩进。
-
sql-formatter支持postgres、hive、spark等方言,配置中必须显式指定:"language": "postgres" - HiveQL 中的
ADD JAR、SET hive.exec.dynamic.partition等语句会被当成错误 SQL 抛弃,建议只格式化SELECT/INSERT主体部分 - 复杂 CTE 嵌套或窗口函数(如
ROW_NUMBER() OVER (PARTITION BY x ORDER BY y))在低版本sqlparse中缩进错位,升级到0.4.4+可缓解
Ctrl+`)里有没有 FileNotFoundError 或 sqlparse.exceptions.ParsingError,比反复重装插件有用得多。










