关闭 Insert pair '{' 即可禁用输入 { 后自动补 } 及 if/function 后多插一行 { 的行为,该设置位于 Settings → Editor → General → Smart Keys 的 PHP 子页签中,2024.3+ 版本需优先检查语言级设置。

关闭 Insert pair '{' 就能禁用自动闭合大括号
PhpStorm 的自动闭合 { 行为不是代码补全(Code Completion)触发的,而是由「Smart Keys」里的配对插入规则控制。只要取消勾选 Insert pair '{',输入 { 后就不会自动补上 },也不会在 if、function 后多插一行 {。
操作路径:Settings / Preferences → Editor → General → Smart Keys,在 PHP 区域(或全局区域)找到该选项并取消勾选。2024.3+ 版本可能把它归到 Auto-insert braces 或用搜索框输入 brace 快速定位。
- 该设置不影响
Ctrl+Space补全函数名或类名等真实补全功能 - 若你仍希望
(和[自动配对,只关{即可,Insert pair bracket是独立开关 - 改完无需重启,立即生效;但已打开的文件中正在编辑的代码块可能缓存了旧行为,新开文件或重新输入确认效果
Enter 换行后自动缩进 + 补 } 是另一个开关
你可能还遇到:输完 if ($x) { 回车,光标自动缩进、下一行空着、再回车才出 }——这其实是 Insert pair } 选项在起作用,和上面的 { 配对无关。
它控制的是「按 Enter 时是否自动补闭合 } 并缩进」,常被误认为是“大括号自动补全”,实则是换行智能逻辑。关闭它不会影响 { 输入时的行为,只让回车更干净。
立即学习“PHP免费学习笔记(深入)”;
- 路径同上,在
Smart Keys页面找Insert pair }复选框,取消勾选 - 这个选项默认开启,尤其在 PHP 文件中容易干扰手写结构
- 关闭后,写
if ($x) {回车,只会缩进,不会自动加};你需要手动敲或用Ctrl+Shift+Enter补全结构
单引号/双引号自动成对也在这里管
如果你发现打一个 ' 立刻变成 '',或者选中文字按 " 被包裹成 "abc",那是因为 Insert pair quote 或 Surround selection on typing quote or brace 开启了。
这两个选项都在同一页面:Editor → General → Smart Keys。区别在于:
-
Insert pair quote:控制单个引号输入时是否自动补第二个(即'→'') -
Surround selection on typing quote or brace:控制选中文本后按引号/括号是否自动包裹(即abc→'abc') - 想彻底禁用引号自动补全,两个都要关;只想保留包裹功能但禁用单引号双出,只关前者即可
别漏掉语言级覆盖设置
新版 PhpStorm(如 2024.3+)把部分 Smart Keys 选项按语言拆分了。比如 Insert pair '{' 可能在全局开关下不生效,因为 PHP 子页签里有独立的同名选项,且默认开启、优先级更高。
务必检查:Editor → General → Smart Keys → PHP(如果有这个子节点),里面可能藏着一模一样的复选框。很多用户调了全局却没生效,就是被这里的语言专属设置覆盖了。
另外,如果项目用了 .editorconfig,它也可能接管括号行为(通过 insert_final_newline 或自定义插件),此时 PhpStorm 设置只是摆设——先确认右下角状态栏有没有显示 EditorConfig 图标。


















