答案是使用自定义插件实现打开文件时自动折叠代码。通过【Tools】→【Developer】→【New Plugin…】创建监听on_load_async事件的插件,运行fold_all命令,仅对source类文件生效,保存为FoldOnOpen.py即可自动折叠所有代码块。

在使用 Sublime Text 编辑代码时,如果希望每次打开文件时自动折叠所有代码块(比如函数、类、缩进块等),可以通过修改配置实现。虽然 Sublime 默认不开启此功能,但通过设置可以轻松启用。
1. 启用打开文件时自动折叠
Sublime Text 本身没有直接的选项叫“打开文件时折叠所有”,但可以通过监听事件并执行折叠命令来实现类似效果。目前最实用的方法是借助 插件或自定义设置 来完成。
以下是一种基于 Preferences 设置 + 插件支持 的可靠方式:
2. 使用 Package Control 安装所需插件
推荐安装 AutoFold 或 ApplySyntax + AutoExpandSelection 配合使用,但更简单直接的方式是通过用户设置配合 折叠命令 实现。
不过,Sublime 原生支持通过 .sublime-settings 文件控制视图行为。你可以尝试如下配置:
步骤如下:
- 打开菜单栏:【Preferences】→ 【Settings】
- 在右侧面板(用户设置)中添加以下内容:
{
"fold_by_default": true,
"gray_out_unsaved_changes": true,
"highlight_modified_tabs": true
}注意:"fold_by_default": true 并不是官方支持的选项,它不会生效。这是常见误区。Sublime 没有原生提供“打开即折叠”选项,必须通过其他方式实现。
3. 真正有效的解决方案:使用插件 EventListener
要实现“打开文件时自动折叠所有代码”,需要使用 自定义插件 监听文件加载事件。
操作步骤:
- 点击菜单:【Tools】→ 【Developer】→ 【New Plugin…】
- 将默认内容替换为以下 Python 代码:
import sublime
import sublime_plugin
class FoldAllOnLoadListener(sublime_plugin.EventListener):
def on_load_async(self, view):
# 只对源码类文件生效,避免影响纯文本
if view.match_selector(0, "source"):
view.run_command("fold_all")- 保存为:
FoldOnOpen.py(名称可自定义),保存路径通常是:
Preferences → Browse Packages → User → FoldOnOpen.py
这样,每当一个文件被加载,且其语法被识别为“source”类型(如 Python、JavaScript、Java 等),就会自动执行 fold_all 命令,折叠所有可折叠区域。
4. 可选:手动触发折叠快捷键
如果你不想用插件,也可以记住快捷键手动折叠:
- 折叠所有:Ctrl + K,然后 Ctrl + 1(Windows / Linux)或 Cmd + K,Cmd + 1(Mac)
- 展开所有:Ctrl + K,Ctrl + J
- 折叠当前光标所在层级:Ctrl + Shift + [
你还可以为此绑定一个快捷键,比如在【Key Bindings】中添加:
{
"keys": ["ctrl+alt+f"],
"command": "fold_all"
}这样按 Ctrl + Alt + F 就能一键折叠。
基本上就这些。真正实现“打开即折叠”的核心方法是写一个简单的 EventListener 插件,监听 on_load_async 事件并调用 fold_all。Sublime 本身不提供该功能的图形化开关,但扩展机制让它很容易实现。










