Ctrl+K Ctrl+0(Windows/Linux)可折叠全部代码块,但需满足语言模式正确、foldingStrategy启用且支持该languageId的折叠规则,否则无效。

Ctrl+K Ctrl+0 在 Windows/Linux 上真能折叠全部代码块
VSCode 默认支持一键折叠所有可折叠区域,但必须满足两个前提:文件语言模式正确、折叠策略已启用。比如 javascript 文件默认开启函数体折叠,而纯文本或未识别的 .txt 文件就完全不响应快捷键。
-
Ctrl+K Ctrl+0(Windows/Linux)或Cmd+K Cmd+0(macOS)是折叠全部的快捷键,不是“收起函数”专用,它会折叠所有支持的层级:类、函数、if 块、对象字面量等 - 如果按了没反应,先检查右下角语言模式是否显示为
Plain Text——点它,选对语言如JavaScript或Python - 部分语言(如
JSON)默认禁用折叠,需在设置里搜editor.foldingStrategy,改值为indent或auto
为什么有些函数体就是折不起来?看 foldingStrategy 和 languageId
折叠能力取决于 VSCode 对当前 languageId 的内置规则,不是所有语言都默认展开函数体折叠。比如 TypeScript 支持,但 Shell Script 只支持缩进折叠,HTML 只能折标签对,不折 JS 块。
- 打开命令面板(
Ctrl+Shift+P),运行Developer: Inspect Editor Tokens and Scopes,点击某函数名,看右上角languageId是什么,再查对应语言的折叠文档 -
editor.foldingStrategy设为indent时,只按缩进折叠,无视语法结构;设为auto(默认)才走语言服务器提供的语义折叠 - 某些插件(如
Prettier)可能干扰折叠状态,关掉试试;或者重启窗口后仍无效,大概率是语言支持本身没实现该折叠点
想只折函数体,不碰 if/for/注释?得靠自定义折叠区域
VSCode 原生不提供“仅折叠函数”的快捷方式。默认折叠是全量的,没法按类型筛选。但你可以用注释标记手动控制范围。
- 在函数前后加
// #region和// #endregion,VSCode 会把它当一个可折叠块——这比等语言支持更可靠 - 注意:
// #region必须顶格写,且不能带空格或注释内容(如// #region myFunc // 这样不行) - Python 用户别指望
# region生效,默认不识别;要用#region(无空格)或装插件Python Docstring Generator等增强支持
折叠状态不保存?那是 editor.foldEnable 没开或工作区覆盖了
关闭文件再打开,发现之前折好的又展开了——不是 bug,是折叠状态默认不持久化。但可以强制保留。
- 确保全局或工作区设置了
"editor.foldEnable": true(一般默认就是 true,但被其他配置覆盖时会失效) - 检查
settings.json里有没有"editor.showFoldingControls": "mouseover"这类配置,它不影响折叠功能,但影响 UI 显示,容易误判为“没折叠” - 真正影响持久化的其实是
editor.restoreViewState,设为true(默认)才能记住滚动位置和折叠状态;设成false就每次重置
折叠逻辑藏在语言服务和编辑器策略之间,调错一个参数,看起来就像“功能失灵”。实际多数时候只是 languageId 不对、foldingStrategy 被锁死,或者 region 注释格式没对齐。


















