snippets.cson 文件必须置于 ~/.atom/snippets.cson(macos/linux)或 %userprofile%.atom\snippets.cson(windows),仅此路径有效;文件名须为 snippets.cson,内容为 cson 格式;修改后需执行 snippets: reload snippets 命令生效;scope 必须精确匹配(如 '.source.js'),开头的点和单引号不可省略;body 中单引号需转义为 \',换行用 \n,占位符 $1、$2 等支持同步输入与光标定位;vs code 或 sublime 的片段格式不兼容,不可直接复用。

snippets.cson 文件必须放在正确路径
Atom 不会自动创建或识别任意位置的 snippets 配置文件。放错地方等于没写。
-
~/.atom/snippets.cson(macOS/Linux)或%USERPROFILE%\.atom\snippets.cson(Windows)是唯一生效路径 - 别把文件名写成
snippets.json或snippets.coffee——Atom 只认.cson后缀,且内容必须是 CoffeeScript Object Notation 格式 - 常见错误:改完文件没 reload,Atom 仍用旧缓存;执行
Cmd+Shift+P→ 输入Snippets: Reload Snippets才能即时生效
scope 写错就触发不了
scope 是决定代码块在哪种文件里可用的关键字段,不是可选的“装饰”。写成 '.source.js' 却在 .ts 文件里敲 cl,肯定没反应。
- 查 scope 的最可靠方式:打开目标文件(比如
index.js),按Cmd+Shift+P→ 输入Editor: Log Cursor Scope,看输出的第一行(通常是source.js) - 常用 scope 值:
'.source.js'、'.source.ts'、'.source.python'、'.text.html.basic'、'.source.php' - 别漏掉开头的点和单引号——
source.js或"source.js"都无效,必须是'.source.js'
body 里占位符要转义单引号
想让 console.log('$1', $2) 输出带引号的字符串,$1 必须被包裹在单引号里,但 CSON 要求字符串本身也用单引号,所以得写成 'console.log(\'$1\', $2);'。
-
$1、$2是 Tab 跳转位置,$0是最终光标停靠点 - 多个相同编号(如
$1出现两次)会同步输入,适合写成对称结构(比如class="$1" id="$1") - 换行用
\n,整个body必须用单引号包裹,内部单引号必须加反斜杠转义 - 示例(JavaScript 中的 fetch 模板):
'fetch(\'$1\')\n .then(res => res.$2)\n .catch(err => console.error(err));'
别直接套用 VS Code 或 Sublime 的片段格式
VS Code 的 .json 片段或 Sublime 的 .sublime-snippet XML 文件不能直接扔进 Atom。语法、scope 映射、占位符写法全都不兼容。
- VS Code 的
${1:default}在 Atom 中不支持,默认值只能靠手动输入,或用transform扩展(极少见,不建议初学折腾) - Sublime 的
块在 Atom 里会解析失败,换行必须显式写\n - scope 映射要重查:VS Code 的
"javascript"对应 Atom 的'.source.js',不是'.javascript'或'javascript'











