Sublime Text 中一键折叠全部代码块需按 Ctrl+K Ctrl+1(Win/Linux)或 Cmd+K Cmd+1(macOS),触发 fold_all 命令,依赖语法高亮识别的结构;未识别为代码块的内容(如纯文本、注释)不会被折叠。

Sublime Text 里怎么一键折叠全部代码块
直接按 Ctrl+K 再按 Ctrl+1(Windows/Linux)或 Cmd+K 再按 Cmd+1(macOS),就能把所有支持的代码块(函数、类、if、for 等)全部折叠。这不是“展开”也不是“切换”,是真正意义上的“全部收起来”。
这个组合键本质是触发 fold_all 命令,它依赖当前语法高亮识别出的代码结构。如果某段代码没被识别为可折叠单元(比如纯文本或注释块),它就不会被折叠——不是快捷键失效,而是 Sublime 根本没把它当“代码块”。
- 确保文件已正确设置语法(右下角显示“Python”“JavaScript”等,而不是“Plain Text”)
- 如果用了自定义语法或插件(如 JSX、Vue 单文件组件),需确认该语法定义了
folding规则 -
Ctrl+K Ctrl+0是反向操作:展开全部,但不会恢复到上次折叠状态,而是清空所有折叠层级
为什么有时 Ctrl+Shift+[ 没反应
这个快捷键默认绑定的是 fold 命令,作用是“折叠光标所在行的最外层代码块”。但它只在光标落在可折叠区域内部时才生效——比如光标在函数体中间,能折;光标在函数名上、空行、注释行、字符串里,大概率没反应。
常见误操作:选中一段代码后按 Ctrl+Shift+[,结果没折叠。因为 Sublime 默认不支持“折叠选区”,它只认语法结构,不认鼠标选中范围。
- 想折叠选中的几行?先用
Ctrl+Shift+P调出命令面板,输入Fold Selection(需要安装 Package Control 后手动安装“Fold Comments and Strings”或类似插件) - 原生不支持按缩进折叠(比如把所有 4 空格缩进的块一起折),那是编辑器逻辑之外的事
- 某些语言(如 YAML、JSON)默认无折叠支持,得靠插件补全
展开 / 折叠状态会保存吗?重启 Sublime 还在不在
默认情况下,Sublime 不保存折叠状态。关掉文件再重开,所有代码都是展开的。这不是 bug,是设计如此——折叠被视为临时视图操作,和字体大小、滚动位置一样不持久。
如果你需要保留折叠状态,唯一可靠方式是启用 remember_open_files 并配合项目(Project → Save Project As……),但注意:只有在项目内打开的文件,且开启 hot_exit 和 remember_open_files 同时为 true 时,折叠状态才可能随会话恢复。实际测试中,稳定性一般,尤其跨版本升级后容易丢失。
- 不要依赖自动保存折叠状态来做长期开发工作流
- 真有强需求,建议用插件
BufferScroll(需手动配置save_on_focus_lost) - 折叠状态不会写入文件,也不影响 Git 提交内容——这点可以放心
Python 函数折叠了,但 def 行没显示省略号?
这是 Sublime 的语法高亮和折叠规则不匹配导致的视觉错位。典型表现:按 Ctrl+K Ctrl+1 折叠后,函数体消失了,但 def my_func(): 那行末尾没出现 ……,看起来像什么都没发生。
根本原因是 Python 语法定义里,def 行未被标记为 fold_level 的起始点,或者折叠范围没包含该行本身(只包了下面的缩进块)。不同 Python 插件(如“Anaconda”、“Python Improved”)处理方式不同,原生 Python 语法较简陋。
- 检查是否用了第三方 Python 语法包,尝试切换回原生“Python”语法看是否改善
- 修改语法定义需编辑
Python.tmLanguage文件(路径类似Packages/Python/Python.sublime-syntax),风险高,不推荐新手碰 - 更实用的办法:用
Ctrl+Shift+P → Fold by Level → 2手动指定层级,比全自动更可控