Navicat 默认未绑定 Ctrl+Enter/Cmd+Enter 到“执行当前语句”,需手动在工具→选项→键盘中搜索“execute current sql”并设置快捷键;且执行前提为光标位于以分号结尾的完整独立语句内,不可嵌套或缺分号。

Navicat 默认不绑定 Ctrl+Enter / Cmd+Enter 到“执行当前语句”,必须手动配置,否则按了没反应是正常现象,不是软件故障。
必须先在键盘设置里挂载 execute current sql 命令
这个功能存在,但出厂未启用。直接按 Ctrl+Enter 没反应,是因为命令根本没挂到快捷键上:
- 打开
工具 → 选项 → 键盘 - 在搜索框输入
execute current sql(注意不是current statement或run selected) - 选中该条目,在下方快捷键框中按下你想要的组合,例如
Ctrl+Enter(Windows/Linux)或Cmd+Enter(Mac) - 若提示冲突(比如 Windows 系统级已占用),换用
Ctrl+Shift+E或Alt+X更稳妥 - 点
应用即刻生效,无需重启
执行当前语句有两个硬性前提,缺一不可
即使快捷键配好了,execute current sql 仍可能静默跳过——它不会报错,只会假装没看见:
- 光标所在位置必须处于一条以分号
;结尾的完整语句内部(如SELECT * FROM users;),不能断在中间、不能缺分号、不能跨在注释行上 - 该语句不能嵌套在其他块结构里:比如写在
CREATE PROCEDURE体中、或被BEGIN ... END包裹,Navicat 会直接忽略识别 - 多行子查询可以,但最外层语句末尾必须有分号;否则它只取光标所在物理行,而非逻辑语句
Mac 用户特别注意输入法干扰
Cmd+Enter 在中文输入法激活状态下常被系统拦截,导致按键无效:
- 切换为英文输入法后再试
- 若仍不稳定,建议改用
Cmd+Shift+E或直接使用内置的F7 -
F7不依赖分号,从光标向下扫描直到空行或下一个;,但容易误吞下一行(比如光标停在注释末尾时)
别把 Ctrl+R 和 Ctrl+Shift+R 搞混
这两个键行为完全不同,且都和“当前语句”无关:
-
Ctrl+R(Win)/Cmd+R(Mac):运行整个编辑器内容,不管有没有选中 -
Ctrl+Shift+R(Win)/Cmd+Shift+R(Mac):只运行当前高亮选中的文本,哪怕只选中半行,也照跑不误 - 它们都不识别“语句边界”,也不检查分号,所以不能替代
execute current sql
真正卡住人的,从来不是找不到快捷键,而是配完之后发现“怎么还是没反应”。问题大概率出在分号缺失、语句嵌套,或输入法干扰——这些细节不报错,只沉默跳过。


















