ctrl+shift+[仅在函数定义行生效,需光标位于def/function行且状态栏显示正确语言;语法识别失败时可用fold_selection手动折叠选中内容。

Ctrl+Shift+[ 按了没反应?先确认光标位置和语法识别
这个快捷键只对「函数定义行」生效,不是函数体里任意一行都能折。Python 必须停在 def func(): 那行,JavaScript 要停在 function foo() { 或 const bar = () => { 行;停在 print()、空行、注释或字符串里,它就静默失败。
右下角状态栏必须显示 Python、JavaScript 等真实语言名,显示 Plain Text 时所有语法级折叠都关闭。验证是否识别成功:光标停在 def 行,按 Ctrl+Shift+P → 输入 Developer: Show Scope Name,状态栏应含 meta.function;若只有 source.python,说明作用域未命中。
想一键折叠所有函数?别用 Ctrl+K, Ctrl+0
Ctrl+K, Ctrl+0 折的是「所有顶层可折叠结构」,会把 class、模块级 if、__all__ = []、甚至 docstring 块全收进去,干扰函数签名浏览。
真正可控的方式是 fold_by_level 命令:
- 先手动用
Ctrl+Shift+[折一个函数,确保它被识别(左侧 gutter 出现 ▶) - 按
Ctrl+Shift+P→ 输入fold_by_level→ 回车 - 依次试数字
2(Python 常有效)、3(JS 常有效)、1;输错无提示,没反应就换下一个 - 装饰器跨行或 docstring 紧贴
def行会导致跳过,加空行可修复
手动选中折叠:最稳的兜底方案
当语法包缺失、文件类型冷门(如 .j2、.pyi),或你只想临时收起一段配置/日志/测试数据时,fold_selection 完全不依赖语法定义:
- 鼠标拖选或多行选中(
Ctrl+L连续选行) - 按
Ctrl+Shift+[(Windows/Linux)或Cmd+Shift+[(macOS) - 折叠后左侧 gutter 出现独立三角图标,点击即可展开
- 该状态仅存于当前会话,关文件即消失,但操作 100% 可控
侧边栏没箭头?不是功能坏了,是设置没开
即使快捷键有效,左侧 gutter 不显示 ▶ 图标,大概率是 UI 设置被关了。打开 Preferences → Settings(右侧用户设置),必须显式添加:
-
"fold_buttons": true—— 启用折叠按钮显示 -
"fade_fold_buttons": false—— 避免按钮只悬停才出现
注意:fold_buttons 只对语法识别出的结构(如 def、class、{)生成图标;纯缩进块(如无大括号的 Python 函数体)不会出按钮。如果加了仍不显示,先回看状态栏是不是 Plain Text。











