ctrl+k ctrl+1(windows/linux)或cmd+k cmd+1(macos)是折叠当前文件中所有顶层def和class块的最可靠方式,不波及if、for及嵌套函数,需确保语言模式正确且装饰器不跨行。

Ctrl+K Ctrl+1 是折叠所有函数的最可靠方式
想把当前文件里所有 def 和 class 块一次性收起来,直接按 Ctrl+K 松开,再按 Ctrl+1(Windows/Linux)或 Cmd+K 松开再按 Cmd+1(macOS)。这不是“所有代码块”,而是明确针对顶层作用域的函数与类——if、for、嵌套函数不会被波及。
常见误操作是连按不松手,或误用 Ctrl+K Ctrl+0(那是 fold_all,会把注释、条件块全收走);也有人试 Ctrl+Shift+[ 多次,但它只作用于光标所在块,无法批量生效。
- 必须确保右下角显示的是
Python、JavaScript等真实语言名,不是Plain Text - 装饰器跨行(如
@cache换行写在def上方)会导致该函数跳过折叠,加一行空行可修复 - Python 中
if __name__ == "__main__":也被视为 level 1,会一同折叠
展开所有函数不能靠 Ctrl+Shift+],得用 Ctrl+K Ctrl+J
Ctrl+Shift+] 只展开「光标所在位置最近的一个已折叠块」,哪怕你刚用 Ctrl+K Ctrl+1 折了一百个函数,它一次也只能展开一个。真正能一键还原全部函数折叠状态的,是 Ctrl+K Ctrl+J(Windows/Linux)或 Cmd+K Cmd+J(macOS)。
注意:Ctrl+K Ctrl+0 是折叠全部,Ctrl+K Ctrl+J 是展开全部——这两个命令不对称,J 不是 0 的反向,而是独立绑定的 unfold_all 命令。输错成 Ctrl+K Ctrl+1 再按一次,只会重复折叠,不会展开。
-
unfold_all不恢复折叠前的层级状态,只是清空所有折叠标记 - 如果部分函数没展开,大概率是它们根本没被识别为可折叠结构(比如缩进混用 tab/空格、语法包未加载)
- HTML 或 Vue 文件中,
Ctrl+K Ctrl+1可能折的是<template></template>或<script></script>根标签,而非函数——语言模式决定行为边界
想只折函数、不碰 class 或 if?得靠 fold_by_level 手动试探
Sublime 没有原生 “仅函数” 命令。Ctrl+K Ctrl+1 在 Python 里通常同时折 def 和 class;在 JavaScript 里则可能把 function 和顶层 if 都收进去。真要隔离函数,只能用 fold_by_level 命令配合实测:
-
Ctrl+Shift+P→ 输入fold_by_level→ 回车 - 从
2开始试(Python 文件常需2或3),不是所有数字都有效,静默失败不报错 - 嵌套函数(如
def outer(): def inner():)需要额外执行一次fold_by_level 3 - 该命令依赖作用域链识别,
print("x")行上按无效,必须光标停在def行本身
选区折叠:临时藏一段函数体,不依赖语法
当你只想快速收起某几个函数体(比如测试数据、大段日志、JSON 配置),又不想影响其他自动折叠逻辑,fold_selection 是唯一不挑食的方案:
- 鼠标拖选或多行选中(
Ctrl+L连续选行) - Windows/Linux 按
Ctrl+Shift+Alt+[,macOS 按Cmd+Ctrl+Option+[ - 左侧边栏出现独立三角图标,点击即展开,和其他折叠互不影响
- 这种折叠只存在于当前会话,关文件就丢——但正因如此,它不怕语法错误、不校验缩进、甚至能在
.env文件里立刻生效
复杂点在于:它和语法折叠共存时,侧边栏会显示两套折叠标记,展开逻辑彼此独立;一旦忘记已手动折叠某段,光标移过去按 Ctrl+Shift+] 也不会触发,得点侧边栏图标。











