必须先启用SQL格式化开关,否则所有自定义规则无效;Windows路径为工具→选项→编辑器→SQL格式化→勾选Enable SQL formatting,macOS为Navicat→偏好设置→SQL编辑器→勾选该选项,且需彻底退出并重启Navicat才能生效。

必须先打开「启用 SQL 格式化」开关,否则所有自定义规则都不生效。 这个开关默认关闭,Ctrl+Shift+F、右键「美化 SQL」、工具栏按钮全无响应——不是快捷键冲突,也不是软件异常,就是功能压根没启动。
怎么确认并开启 SQL 格式化功能
Windows:工具 → 选项 → 编辑器 → SQL 格式化 → 勾选 Enable SQL formatting
macOS:Navicat → 偏好设置 → SQL 编辑器 → 勾选 Enable SQL formatting
勾选后必须彻底退出 Navicat(关窗口不算),再重新启动;已打开的查询页仍沿用旧规则。
中文输入法下 Ctrl+Shift+F 常被系统拦截,建议临时切英文输入法,或直接用右键菜单验证是否启用成功。
为什么导出 XML 是唯一可靠的团队同步方式
Navicat 没有账号同步、没有云端配置、不读取系统设置,只认本地 XML 文件。
配置好本地参数后,在「美化 SQL 选项…」对话框右下角点 导出,保存为 navicat_sql_format.xml。
提交到 Git 仓库时,路径统一设为 .navicat/format/navicat_sql_format.xml。
团队成员导入流程:打开「美化 SQL 选项…」→ 导入 → 选中该 XML → 重启 Navicat。
注意:Navicat 16 和 Navicat 17 的 XML 结构存在微小差异,混用会导入失败;Mac 与 Windows 导入逻辑一致,无需额外适配。
哪些参数必须对齐,否则格式效果错乱
即使用了同一份 XML,以下三项若理解偏差,Git diff 里就会频繁出现空格抖动、大小写翻转等无意义变更:
• Uppercase keywords:必须统一勾选或不勾选。选 By database type 会导致 PostgreSQL 的 "id" 被误判为标识符,SELECT 变成小写,甚至把 my_func() 改成 MY_FUNC() 引发执行错误。
• Indent width:设为 4。设 2 多层子查询难分辨层级,设 8 容易横向溢出编辑器可视区。
• Wrap after N characters:推荐 80~100。设为 0 会让长 WHERE 条件堆成单行,被迫横向滚动。
• 务必取消勾选 Preserve original spaces:否则粘贴他人代码后,手写缩进会干扰自动对齐,尤其破坏 JOIN ON 条件的垂直对齐逻辑。
最常被忽略的是「重启」和「禁用 Preserve original spaces」——前者让配置形同虚设,后者让格式化在 JOIN 场景下完全失效。这两步不做,其他设置再精细也没用。


















