代码折叠失效90%因光标位置错误、语言模式为Plain Text或keymap.cson语法错误;需确保光标在{和}之间、右下角显示JavaScript等有效语言模式,且keymap文件用单引号和2空格缩进。

代码折叠失效,90% 不是插件没装或 Atom 坏了,而是光标位置、语言模式或 keymap.cson 语法这三者之一出错。
光标必须落在可折叠结构的「内容区」内
Atom 的 editor:fold-at-cursor(对应快捷键 Ctrl+Alt+[ / Cmd+Option+[)只响应光标是否处于语法块内部,不看函数名、大括号外侧、空行或注释行。
- ✅ 正确位置:函数体第一行缩进后、
{和}之间、if块缩进体内 - ❌ 常见错位:
function foo() {行末、return {后面、JSX 标签闭合符/>右侧 - ? 验证方法:用鼠标双击选中一段代码,再按
Ctrl+Alt+[;或把光标挪到函数体首行缩进后重试
右下角显示 Plain Text?折叠直接归零
Atom 折叠能力完全依赖当前 language-mode 提供的 getFoldableRanges()。如果右下角显示 Plain Text,说明语法包未加载,所有折叠逻辑都不会启动。
- 点击右下角文字,手动切换为
JavaScript、TypeScript、Vue Component等有效语言 - 确认已启用对应语言包:
language-javascript(旧版不支持箭头函数体折叠)、language-typescript(推荐)、language-vue(Vue 单文件组件必需) - YAML/TOML/JSON 默认无折叠,需装
language-yaml且版本 ≥ 0.34(含foldingStartMarker配置)
keymap.cson 语法错误或选择器被覆盖
Atom 不报错但快捷键不动,大概率是 keymap.cson 文件本身解析失败,或规则被更精确的选择器覆盖。
- 路径必须准确:
~/.atom/keymap.cson(macOS/Linux)或%USERPROFILE%\.atom\keymap.cson(Windows) - 值必须用单引号包裹:
'editor:fold-at-cursor',写成"editor:fold-at-cursor"或editor:fold-at-cursor会静默失败 - 缩进只能用空格,每级 2 空格;冒号后必须跟空格;末尾不能多逗号
- 别用太宽泛的选择器:
'atom-text-editor': 'ctrl-shift-[': 'editor:fold-at-cursor'很可能被语言包自己的 keymap 覆盖
editor:fold-all 没反应?优先用 Ctrl+K Ctrl+0
editor:fold-all 命令本身不绑定默认快捷键,且严重依赖语言包是否提供完整折叠范围。它不是暴力递归收起所有大括号,而是调用 getFoldableRanges() 返回的区域列表。
- 最稳定的一键全折方式是
Ctrl+K Ctrl+0(Windows/Linux)或Cmd+K Cmd+0(macOS),不依赖光标位置和 region 支持 -
Ctrl+K Ctrl+1到Ctrl+K Ctrl+9可按缩进层级折叠(1 级 = 编辑器设置的缩进单位) - 展开全部用
Ctrl+K Ctrl+J(Win/Linux)或Cmd+K Cmd+J(macOS),比反复按方向键更可靠 - 自定义
// #region折叠需语言包原生支持,language-babel或language-typescript是目前最稳妥的选择
折叠状态默认不持久,重启就全展开——这不是 bug,是 Atom 的设计行为。想保存折叠状态,必须装 nuclide-file-tree 或 save-session 这类插件,而不是指望配置项或 keymap.cson 解决。

















