VSCode折叠所有代码块的快捷键是Ctrl+K后松开再按Ctrl+0(Windows/Linux)或Cmd+K后松开再按Cmd+0(macOS),需确保有可折叠结构且未被插件劫持。

VSCode里折叠所有代码块用哪个快捷键
Windows/Linux 默认是 Ctrl+K 然后松手再按 Ctrl+0;macOS 是 Cmd+K 接着 Cmd+0。这不是单个组合键,而是两步命令序列——先触发折叠命令前缀,再选“折叠全部”动作。
常见错误现象:按一次 Ctrl+K Ctrl+0 没反应,其实是没松开 Ctrl+K 就直接按了 0,或者误以为要长按不放。VSCode 的折叠命令依赖「先释放前缀键、再按数字」的节奏。
- 确认当前文件有可折叠区域(比如函数、类、注释块、
if块),纯文本或无结构代码不会响应 - 如果失效,检查是否被插件劫持了快捷键(比如 Prettier、Ember 插件有时会重映射
Ctrl+K) - 可在命令面板搜
Fold All手动执行,验证功能本身是否正常
展开所有代码块的快捷键和例外情况
对应展开是 Ctrl+K Ctrl+J(Windows/Linux)或 Cmd+K Cmd+J(macOS)。但注意:它只展开「当前已折叠的层级」,不是“恢复到原始状态”。比如你手动折叠了第3层嵌套,又用 Ctrl+K Ctrl+0 折叠了第1层,此时 Ctrl+K Ctrl+J 只会展开第1层,第3层仍保持折叠。
使用场景:适合快速扫视顶层结构后,再逐层下钻。不适合“一键还原所有折叠”的需求。
- 没有全局“展开全部到原始状态”的内置命令,除非你从没手动折叠过
- 某些语言(如 Python)因缩进驱动,折叠逻辑较弱,
Ctrl+K Ctrl+J可能对空行或字符串块无效 - 如果文件里有大段注释块(如 JSDoc),默认可能不参与折叠,需在设置中开启
"editor.foldingStrategy": "indent"或"auto"
怎么让 VSCode 折叠更准、更符合直觉
默认折叠策略在不同语言表现不一。JavaScript/TypeScript 通常靠语法树(auto),而 HTML/CSS 依赖缩进(indent),Python 则两者都弱——这是最常被吐槽“为啥折不了”的根源。
关键配置项是 "editor.foldingStrategy",设为 "auto"(默认)优先用语法分析;设为 "indent" 强制按缩进折叠,对 Python 和 shell 脚本更友好。
- 修改位置:
settings.json,加一行"editor.foldingStrategy": "indent" - 影响性能:大型 TypeScript 文件设为
indent会略慢,因为要遍历每行缩进 - 部分插件(如 Docker、YAML)提供自己的折叠提供者,它们不受全局
foldingStrategy控制
折叠状态不保存?关了文件再打开就全展开了
VSCode 默认不持久化折叠状态。关掉文件标签页,再重新打开,所有折叠都会重置。这不是 bug,是设计如此——折叠被视为临时浏览态,而非编辑态的一部分。
如果你真需要记住折叠位置,有两个实际可用的路子:
- 装插件
Restore Folding(轻量,只记当前文件折叠行号) - 用
Ctrl+Shift+P→ 输入Workspaces: Save Workspace As...保存工作区,折叠状态会随工作区一起存(但仅限该工作区下的文件) - 别依赖折叠做长期信息隐藏——该删的注释、该拆的函数,比折叠更治本
真正容易被忽略的是:折叠状态在「同一文件多个编辑器分组」中也不同步。左边组折叠了函数A,右边组打开同一文件,函数A仍是展开的——它压根不跨编辑器实例共享。











