必须开启“Enable code completion”全局总开关,路径为工具→选项→编辑器,且需同步启用当前标签页右键菜单中的Code Completion,同时避免Ctrl+Space被输入法劫持,并手动刷新元数据以加载表结构。
启用自动补全的全局开关必须打开
navicat 默认不开启 sql 关键字提示,enable code completion 这个总开关在新装或升级后几乎总是关闭状态。不勾选它,后续所有操作都无效。
路径是:工具 → 选项 → 编辑器 → Enable code completion(注意不是“查询编辑器”页签,旧版容易找错位置)。
常见错误现象:输入 sel 按 Tab 没反应、SELECT * 后空格再按 Ctrl+Space 无菜单弹出——大概率就是这个没开。
当前查询窗口也要单独启用
即使全局开了,每个查询标签页还有一层独立控制:右键编辑器空白处 → Code Completion → Enable Code Completion。
这个开关会随切换连接、重开 tab 或执行某些同步操作而被自动关闭,很多人只设全局却忽略这一步,结果只在新建窗口里生效。
验证方法:右键编辑器,看菜单里 Code Completion 前是否有对勾;没有就点一下。
快捷键被输入法劫持是最常见的“没反应”原因
Ctrl+Space 在 Windows 中默认是中英文切换快捷键,系统直接拦截,Navicat 根本收不到事件。
快速验证:切到英文输入法,再按 Ctrl+Space —— 如果立刻弹出补全框,问题就坐实了。
解决方式有三种:
- 临时:写 SQL 前手动切英文输入法
- 长期:进
工具 → 选项 → 编辑器 → 代码补全,把快捷键改成Ctrl+Alt+Space或Alt+/ - 根治:进搜狗/微软拼音「高级设置」,关闭
Ctrl+Space切换功能
macOS 用户注意:Navicat 17.1+ 默认用的是 Cmd+/,不是 Cmd+Space(后者是 Spotlight)。
刚连库时补全为空?元数据还没加载
开了开关、快捷键也通了,但补全列表只有关键字、没有表名和字段——说明 Navicat 还没拿到当前库的结构信息。
必须手动触发一次元数据拉取:右键连接 → 刷新,等状态栏显示 Refreshing objects… 完成;或者在查询窗口中按 Ctrl+Space(此时光标需在合法上下文,比如 FROM 后面)。
PostgreSQL 用户特别注意:search_path 设了但「对象过滤器」里勾了 Only show current schema,而该 schema 下还没建表,补全就会为空。可先取消勾选再刷新。
MySQL 用户若同步时报 order 相关语法错误,说明表名撞保留字,得去同步向导 → 高级 → DDL Options → Auto-escape keywords 勾上,否则补全能出来,但生成的语句会直接崩。











