ctrl+k ctrl+0 折叠全部代码块,仅作用于有明确起止标记的结构(如函数、循环),依赖语言扩展的 foldingprovider;ctrl+k ctrl+j 展开已折叠区域,不改变未折叠层级;mac 对应 cmd+k cmd+0/j;折叠策略(foldingstrategy)影响效果,auto 自动适配,indentation 按缩进折叠。

Ctrl+K Ctrl+0 折叠全部代码块(Windows/Linux)
这个组合键会递归折叠所有支持的代码块,包括函数、类、if/else、for 循环等。它不折叠注释或空行,只作用于有明确开始/结束标记的结构体。
- 折叠深度取决于语言扩展提供的
foldingProvider实现,比如 Python 靠缩进,JavaScript 靠大括号 - 如果某段代码没被折叠,大概率是当前语言扩展未正确识别其结构(例如 JSX 中的花括号嵌套过深时可能失效)
- 折叠后,编辑器左侧行号区域会出现小三角图标,悬停可预览折叠内容(需开启
"editor.foldingStrategy": "auto")
Ctrl+K Ctrl+J 展开全部代码块(Windows/Linux)
这是 Ctrl+K Ctrl+0 的反向操作,但要注意:它只展开当前已折叠的区域,不会恢复到原始未折叠状态——如果某些区块本来就没被折叠,它不会“额外展开”它们。
- 若你之前用
Ctrl+Shift+[手动折叠了某几处,再按Ctrl+K Ctrl+J会一并展开,但它不管那些从未折叠过的层级 - 在大型文件中频繁使用这个组合键可能导致光标跳转到顶部,因为展开后视图重排;建议配合
Ctrl+Home快速回到原位置
Mac 上对应快捷键是 Cmd+K Cmd+0 和 Cmd+K Cmd+J
Mac 用户注意:Cmd+K 是命令前缀,不是 Cmd 单独按,必须按住 Cmd 不放,依次按下 K → 0(或 J)。松手太早会导致只触发 Cmd+K 的默认行为(清空终端或打开命令面板)。
- VSCode 设置里可查证:打开
keybindings.json,搜索"editor.foldAll"和"editor.unfoldAll"确认绑定是否被覆盖 - 某些输入法(如搜狗 Mac 版)会劫持
Cmd+K组合,此时需在输入法设置中禁用相关快捷键
折叠策略影响实际效果,别忽略 "editor.foldingStrategy"
VSCode 默认用 "auto",会根据语言自动选缩进或语法树方式折叠。但像 JSON 或 Markdown 这类无语法块的语言,"auto" 退化为仅支持手动折叠;而设成 "indentation" 后,哪怕纯文本也能按缩进层级折叠。
- 修改方式:打开设置(
Ctrl+,),搜foldingStrategy,下拉选择或直接编辑settings.json - 切换为
"indentation"后,Python 文件里 if 块可能被过度折叠(比如单行 if 被当成独立块),这时反而要切回"auto"
有些语言扩展(如 Rust 的 rust-analyzer)默认禁用语法折叠,得手动启用 "rust-analyzer.cargo.loadOutDirsFromCheck": true 才能让折叠正常工作。这种细节不报错,也不提示,只表现为“明明写了函数却折不动”。











