atom默认无「一键折叠全部」快捷键,需手动在keymap.cson中绑定ctrl-alt-o(win/linux)或cmd-alt-o(macos)到editor:fold-all命令,且仅对语法识别的文件生效。

Atom 没有默认绑定的「一键折叠全部」快捷键,但 editor:fold-all 命令本身是可用的——关键在于你得手动配快捷键,或用命令面板临时触发。
如何给 editor:fold-all 绑定快捷键
Atom 不预设这个快捷键,是因为折叠行为高度依赖语法解析器(如 language-javascript 或 language-python)是否提供了正确的折叠范围。直接硬编码全局快捷键反而容易在非结构化文件中出错。
- 打开 Atom 设置 → Keybindings → 点击右下角「Your Keymap File」链接,会打开
keymap.cson - 添加一行:
'atom-text-editor:not([mini])': 'ctrl-alt-o': 'editor:fold-all'(Windows/Linux)或'atom-text-editor:not([mini])': 'cmd-alt-o': 'editor:fold-all'(macOS) - 保存后立即生效;
ctrl-alt-o这类组合键避开常用冲突,比ctrl-shift-[更稳妥 - 注意:该绑定只对当前有语法识别的文件生效——纯文本或未识别语言的 .txt 文件里,
editor:fold-all什么也不会做
editor:fold-all 折的是什么?不是所有嵌套都收得干净
Atom 的折叠基于语法树层级,不是缩进或大括号计数。这意味着:
- 函数、if/else、for 循环等标准块通常能被识别并折叠
- 自定义区域(如
// #region utils)默认不支持——需要装插件fold-functions或atom-fold-comment - 嵌套过深(比如 5 层以上的对象字面量或 JSX)可能只折叠到第 2–3 层,因为语法解析器没把更深层标记为独立可折叠单元
- 折叠后光标若在被折叠行内,按
↓键会跳到下一段展开内容,而不是进入折叠块内部——这是设计行为,不是 bug
命令面板临时触发比配快捷键更快的场景
当你只是偶尔处理一个大 JSON 配置、YAML 清单或旧版 CoffeeScript 文件时,配快捷键反而多此一举。直接用命令面板更轻量:
- Windows/Linux 按
ctrl-shift-p,macOS 按cmd-shift-p呼出命令面板 - 输入
fold all,选择Editor: Fold All回车即可 - 同一面板里输
unfold all能立刻还原,不用切回键盘找组合键 - 特别适合临时阅读 webpack.config.js 或 vue SFC 的
<script></script>区块——这些文件往往只有 1–2 处值得折叠,没必要长期占用快捷键
真正容易被忽略的一点:Atom 的折叠状态不会跨窗口保存。关掉再打开同一个文件,之前手动折叠的块全恢复展开——它不记录用户折叠偏好,只依赖当前语法解析结果。如果需要持久化隐藏,得靠 project-manager 插件配合自定义视图,或者干脆换用支持 #region 的编辑器(如 VS Code)。










