Navicat编辑器SQL关键字灰色无高亮,主因是数据库类型与实际SQL不匹配或“使用语法高亮显示”未启用;需检查右下角状态栏类型并手动切换,再确认选项中该复选框已勾选,且“文件大小禁用”阈值合理。
编辑器里SQL关键字全是灰色,不着色
navicat 编辑器没语法高亮,大概率不是插件或设置丢了,而是当前连接的数据库类型和实际 sql 不匹配。比如你连的是 postgresql,但编辑器右下角状态栏显示的是 mysql ——这时所有 select、from 都不会变蓝,$$ 块、do 语句也全无提示。
检查步骤很简单:
- 看编辑器窗口右下角状态栏,确认显示的是你正在写的 SQL 对应的数据库类型(如
PostgreSQL、MySQL、SQL Server) - 如果不是,点击该区域手动切换;若灰掉不可点,说明当前连接本身类型不对,得换连接或新建一个匹配类型的连接
- 切对后,不用重启,立刻生效:括号自动配对高亮、字符串变红、注释变绿都会回来
切换了数据库类型还是没颜色?检查“使用语法高亮显示”是否被关了
状态栏类型正确但依然无高亮,大概率是这个开关被误关了。它藏得有点深,而且没有全局默认值,每个连接可独立控制。
- 菜单栏 →
工具→选项…→ 左侧选编辑器 - 确保勾选了
使用语法高亮显示复选框 - 再往下看
如果文件大小大于此就禁用 (MB):,如果设成了0.1,而你打开的是 200 行的脚本,也会被静默禁用——建议调成5或更高
Mac 上输中文后高亮错乱、关键字突然变黑
这不是编码问题,也不是 SQL 写错了,是 Navicat 15+ 在 macOS 上用 Qt 渲染时和输入法框架打架,导致语法解析器看到的文本流错位。改系统语言、重装输入法都没用,但换字体能绕过。
- 菜单栏 →
Navicat→偏好设置→外观→编辑器字体 - 换成
Monaco或SF Mono,别用Helvetica Neue、System Font这类带可变轴的字体 - 改完立刻生效,无需重启,中文输入、括号匹配、关键字着色全部回归正常
格式化后颜色又没了,或者只高亮前几行
这是 Navicat 对大型 SQL 脚本做的保守处理:一旦检测到非标准结构(比如多段 CREATE OR REPLACE FUNCTION 套嵌、大量 $$ 分隔符、混用 -- 和 /* */ 注释),语法分析器可能中途放弃,后续内容降级为纯文本渲染。
- 先用
美化 SQL按钮格式化,观察哪一行之后颜色中断 - 重点检查中断点附近的引号是否闭合、括号是否配对、
$$是否成对出现 - PostgreSQL 中
$$块内不能嵌套$$,MySQL 的DELIMITER切换后必须严格匹配,否则整块会被当作文本忽略
真正麻烦的不是颜色消失,而是颜色“半失效”——比如 SELECT 变蓝了,但 OVER() 窗口函数不黄、ILIKE 不紫。这种说明解析器识别到了基础语法,但没加载对应数据库的扩展词典,得确认连接类型和服务器版本是否完全匹配。











