sublime怎么快速格式化SQL语句_sublime安装SqlBeautifier插件【方法】

发布时间 - 2025-12-26 00:00:00    点击率:
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(2025 年后安装的),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-buildcmd 中加参数:

    • 保留原始大小写:加 --identifier-case=lower(默认)或 --identifier-case=upper--identifier-case=unchanged
    • 推荐改用:
      "cmd": ["sqlformat", "--reindent", "--keyword-case=upper", "--identifier-case=unchanged", "-"]
    • 注意:unchanged 在含引号的标识符(如 "User_ID")下才真正保真;纯字母数字名仍可能被统一小写,这是 sqlparse 解析器限制
    实际用下来,build system 方案最稳——不依赖插件生命周期,命令行工具升级即生效;而 SqlFormatter 插件适合不想碰终端、但又需要快捷键和 GUI 配置的人。别在 SqlBeautifier 上浪费时间,它现在连基本的 CTE(WITH 子句)都常格式错。


# linux  # word  # python  # sublime  # js  # git  # json  # windows  # github  # 工具  # mac 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  如何快速搭建高效简练网站?  如何自定义建站之星模板颜色并下载新样式?  Laravel定时任务怎么设置_Laravel Crontab调度器配置  iOS验证手机号的正则表达式  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  高防服务器租用指南:配置选择与快速部署攻略  如何在阿里云通过域名搭建网站?  如何在景安服务器上快速搭建个人网站?  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  个人网站制作流程图片大全,个人网站如何注销?  如何快速搭建高效WAP手机网站吸引移动用户?  如何在腾讯云免费申请建站?  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  南京网站制作费用,南京远驱官方网站?  利用python获取某年中每个月的第一天和最后一天  如何生成腾讯云建站专用兑换码?  动图在线制作网站有哪些,滑动动图图集怎么做?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  js实现获取鼠标当前的位置  javascript基本数据类型及类型检测常用方法小结  如何在景安云服务器上绑定域名并配置虚拟主机?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  如何用PHP工具快速搭建高效网站?  Laravel怎么在Controller之外的地方验证数据  魔毅自助建站系统:模板定制与SEO优化一键生成指南  b2c电商网站制作流程,b2c水平综合的电商平台?  原生JS获取元素集合的子元素宽度实例  如何快速查询网址的建站时间与历史轨迹?  新三国志曹操传主线渭水交兵攻略  Laravel如何使用withoutEvents方法临时禁用模型事件  🚀拖拽式CMS建站能否实现高效与个性化并存?  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  如何确保西部建站助手FTP传输的安全性?  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  微信小程序 配置文件详细介绍  Python面向对象测试方法_mock解析【教程】  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Angular 表单中正确绑定输入值以确保提交与验证正常工作  如何在Ubuntu系统下快速搭建WordPress个人网站?  Laravel如何实现用户密码重置功能?(完整流程代码)  EditPlus中的正则表达式 实战(2)  如何用AI帮你把自己的生活经历写成一个有趣的故事?  想要更高端的建设网站,这些原则一定要坚持!  Windows Hello人脸识别突然无法使用  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南