Ctrl+Shift+-(Win/Linux)或Cmd+Shift+-(macOS)可一次性折叠文件中所有已启用的可折叠单元,包括函数、类、use块、注释等,实现宏观结构浏览。

直接说结论:用 Ctrl+Shift+-(Windows/Linux)或 Cmd+Shift+-(macOS)就能一次性折叠整个文件里所有可折叠单元,包括类中全部方法、属性、注释块、import 等——这是最可靠、最通用的“宏观浏览”入口。
为什么 Collapse All 比手动点每个方法更实用
当你打开一个 2000 行的 UserService.php,里面塞了 30+ 个方法,靠滚动+扫视找逻辑入口效率极低。而 Collapse All 把每个方法压缩成一行(如 public function create(...)),类结构立刻变“大纲”,一眼能看清职责划分和调用层次。
注意:它不只折方法,还会折掉 use 块、/** */ 文档注释、if/foreach 块(如果启用了对应折叠选项),所以实际效果比“只折函数”更干净。
- 折叠后光标仍在原位置,不会跳转,方便你继续按
Ctrl+F12呼出结构视图精准定位 - 如果类里有大量空行或单行注释,它们默认不被折叠——这不是 bug,是 PhpStorm 的折叠策略:只对语义块(method/class/region)生效
- 某些 PHP 扩展语法(比如属性断言
public string $name is non-empty;)可能不被识别为可折叠单元,属于已知限制
Collapse All 和 Collapse Recursively 的关键区别
很多人误以为 Collapse Recursively(Ctrl+Alt+-)才是“全折”,其实它干的是另一件事:对当前已折叠的区域,再往里多折一层(比如已折了一个 public function,它会把该方法里的 try 块也折进去)。这容易造成过度折叠,反而丢失主干结构。
立即学习“PHP免费学习笔记(深入)”;
-
Collapse All(Ctrl+Shift+-):从顶层开始,把所有支持的折叠单元统一收起,结果可控、可预期 -
Collapse Recursively(Ctrl+Alt+-):只作用于“当前已展开的嵌套层级”,适合调试时临时深挖某一段,不适合宏观浏览 - 如果你发现按了
Ctrl+Shift+-没反应,大概率是光标不在编辑器内——确认焦点在代码区,不是终端、Git 工具窗或搜索框
Mac 上 Cmd+Option+- 是什么?别混淆
部分老教程提到 Cmd+Option+-,这是早期 PhpStorm 版本(Cmd+Shift+-。现在用 Cmd+Option+- 实际触发的是“折叠当前选中代码块”(类似 Ctrl+.),并非全文件操作。
- 新版 PhpStorm(2021.3 起)设置里查不到
Cmd+Option+-绑定到Collapse All,说明它已被弃用 - 若你习惯用
Cmd+Option+-且它仍有效,说明你本地改过 Keymap,建议重置为默认,避免团队协作时快捷键不一致 - 验证方式:打开
Preferences → Keymap,搜Collapse All,看绑定的是哪个组合键
真正要建立肌肉记忆的,只有 Ctrl+Shift+-(Win/Linux)和 Cmd+Shift+-(macOS)这一组。其它快捷键都是辅助——比如 Ctrl+F12 快速跳方法、Ctrl+NumPad - 折单个函数,但宏观浏览的第一步,永远是干净利落地把整页代码“提纲化”。别在折叠方式上花额外决策成本,这个组合键就是事实标准。


















