ctrl+k ctrl+0(windows/linux)或 cmd+k cmd+0(macos)可一键递归折叠所有可折叠区域,包括函数、类、if块等;需确保文件已保存且语言模式正确,python用户还需设置"editor.foldingstrategy": "language-defined"。

Ctrl+K Ctrl+0 折叠所有区域(含函数体)
VSCode 默认不自动折叠函数,但内置了层级折叠命令。Ctrl+K Ctrl+0(Windows/Linux)或 Cmd+K Cmd+0(macOS)是真正“一键收起全部”的快捷键,它会递归折叠所有可折叠区域:函数、类、if 块、注释块等。
注意这不是“只折函数”,而是按当前语言的折叠规则全量折叠——对 JavaScript/TypeScript/Python/Java 等主流语言,函数定义天然构成一个折叠单元,所以效果上就是所有函数体被收起。
- 必须先确保文件已保存(未保存的临时文件可能不触发语法折叠)
- 如果按了没反应,大概率是当前语言模式没识别对:检查右下角状态栏,确认显示的是
JavaScript、Python而不是Plain Text - 部分语言(如 JSON)默认无折叠逻辑,
Ctrl+K Ctrl+0无效是正常的
为什么 Ctrl+Shift+[ 不起作用?
Ctrl+Shift+[ 是“折叠当前光标所在区域”的快捷键,不是全局操作。它只影响光标所在的最内层可折叠块(比如你正停在某个 if 语句里,它就只折这个 if;停在函数名上,才可能折整个函数体)。
常见误操作:把光标放在函数第一行末尾或空行,此时 VSCode 可能无法准确定位到函数范围,导致折叠失败。
- 安全做法:把光标放在函数关键字上(如
function、def、public void所在行)再按Ctrl+Shift+[ - 想批量操作?别用这个,直接上
Ctrl+K Ctrl+0 - 该快捷键在某些键盘布局(如部分 Mac 外接键盘)可能被系统拦截,需在系统设置中放行
Python 函数折叠失效?检查 "editor.foldingStrategy"
Python 用户常遇到函数不折叠,即使用了 Ctrl+K Ctrl+0 也只折注释和 import。根本原因通常是 VSCode 没启用基于语法的折叠策略。
默认情况下,Python 使用 auto 策略,但某些旧版本或插件冲突会导致回退到 indentation(仅按缩进折叠),而缩进折叠无法识别 def 函数边界。
- 打开设置(
Ctrl+,),搜foldingStrategy - 找到
Editor > Folding Strategy,设为language-defined - 或者直接在
settings.json中加:"editor.foldingStrategy": "language-defined"
- 改完重启编辑器或重载窗口(
Ctrl+Shift+P→Developer: Reload Window)
自定义折叠区域:用 //#region 注释标记任意代码块
不是所有逻辑都天然可折叠。比如一段长配置对象、一大段初始化代码,或者你想手动组织的业务模块,VSCode 支持用注释指令定义折叠区。
在支持的语言(JS/TS/Python/Java/C# 等)中,写:
// #region 初始化配置<br>const config = { ... };<br>// #endregion即可将其折叠。-
#region和#endregion必须独占一行,且前面只能有空白或//(JS/TS)或#(Python) - VSCode 不校验配对,写漏
#endregion会导致后续所有折叠错乱 - 该功能依赖语言服务器,某些轻量级 Python 解释器(如 Pylance 关闭时)可能不响应
折叠本身不改变代码行为,但过度依赖区域标记会让别人读代码时多一层心智负担。真要整理大文件,优先考虑拆模块,而不是堆 #region。











