Ctrl+Shift+[(Win/Linux)或Cmd+Shift+[(macOS)折叠光标所在最内层代码块,如if、函数体等,不递归不跨块;Ctrl+K Ctrl+0(或Cmd+K Cmd+0)一键折叠全部可识别区域,依赖语言支持与foldingStrategy设置。

折叠当前代码块用 Ctrl+Shift+[(Windows/Linux)或 Cmd+Shift+[(macOS)
这个快捷键只作用于光标所在行所属的最内层代码块,比如一个 if 块、一个函数体、一个对象字面量。它不会递归折叠子块,也不会影响同级其他块。常见误操作是反复按多次,结果发现没反应——其实是因为该层级已完全折叠,再按会跳到上一层折叠点;此时改用 Ctrl+K Ctrl+0(全部折叠)更直接。
展开当前折叠区域用 Ctrl+Shift+](Windows/Linux)或 Cmd+Shift+](macOS)
和折叠是镜像操作,但有个关键细节:如果光标不在已折叠区域内部,而是停在折叠标记旁的空白行,VSCode 可能无法识别目标块。建议先用方向键把光标移到折叠块内的任意一行(比如函数第一行或 { 所在行),再执行展开。另外,如果代码用了非标准缩进(如混用空格和 Tab),Ctrl+Shift+] 有时会失效——VSCode 依赖缩进结构识别代码块边界。
一键折叠所有嵌套层级用 Ctrl+K Ctrl+0(Windows/Linux)或 Cmd+K Cmd+0(macOS)
这个组合键会把整个文件里所有可折叠区域(函数、类、条件块、注释块等)全部收起,适合快速浏览结构。但要注意:它不区分语言特性,比如 TypeScript 的接口定义、JSON 的数组项、甚至 Markdown 的二级标题都会被折叠。如果你刚打开一个含大量 import 的文件,执行后可能只剩几行顶层语句——这不是 bug,是 VSCode 默认启用的「大纲折叠」行为。可通过设置关闭:"editor.foldingStrategy": "indentation",强制只按缩进折叠。
自定义折叠范围需修改 foldingStrategy 或启用语言特有支持
默认情况下,VSCode 根据缩进或语言语法判断折叠点。但有些场景下语法解析不可靠,比如 JSX 中的逻辑片段、模板字符串里的多行表达式。这时可以:
- 在用户设置中添加
"editor.foldingStrategy": "indentation",让折叠完全依赖缩进,避免语法解析干扰 - 确认当前语言扩展是否支持高级折叠(如 Python 的
python.foldingStrategy、JavaScript 的javascript.preferences.foldingImports) - 手动插入折叠注释:
// #region My Section和// #endregion,这类标记不受语言限制,且优先级高于自动折叠
真正麻烦的是混合语言文件(如 .vue 单文件组件),<script> 和 <template> 的折叠策略可能互相冲突,这时候必须靠 #region 显式划分,否则快捷键容易漏掉某一段。


















