导出 snippets.cson 是唯一可靠方式,所有自定义代码片段仅存于此文件;路径为 macOS/Linux 的 ~/.atom/snippets.cson 或 Windows 的 %USERPROFILE%.atom\snippets.cson;注意其为 CoffeeScript 格式、缩进敏感,且 scope 必须精确匹配(如 source.js 而非 javascript)。

导出 snippets.cson 是唯一可靠方式
Atom 不提供“导出补全配置”按钮,所有自定义代码片段(for、console.log、fetch 等)都只存放在 snippets.cson 文件里。想迁移或备份,直接复制这个文件就行——别指望插件设置页或 Packages 页面能导出 anything。
路径必须准确:
- macOS / Linux:
~/.atom/snippets.cson - Windows:
%USERPROFILE%\.atom\snippets.cson
如果文件不存在,说明你还没写过任何 snippet;新建一个空文件再粘贴内容也完全合法。注意:它不是 JSON,是 CoffeeScript Object Notation,缩进敏感,不能用 tab 混合空格。
别误把 provider 插件当“补全配置”导出
很多人想导出 autocomplete-javascript 或 atom-ternjs 的配置,其实这些插件的设置只是开关和路径,不包含实际补全词库。比如 atom-ternjs 的项目级配置存在 .tern-project 里,但它只影响类型推导行为,不会生成 if、try 这类基础补全项。
真正要迁移补全能力,只需两样:
-
snippets.cson(你写的全部自定义片段) -
~/.atom/config.cson(可选,仅当你改过autocomplete-plus的minimumWordLength或autoActivation等全局参数)
config.cson 里跟补全强相关的字段极少,多数是 UI 或快捷键设置,盲目导出反而容易带入冲突项。
scope 写错导致导出后失效,这是最常被忽略的坑
你导出了 snippets.cson,换台机器放进去,结果 cons 还是不补 console.log?大概率是 scope 不匹配。Atom 不报错,只是静默跳过。
查当前文件真实 scope 的方法不变:Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS)→ 输入 Editor: Log Cursor Scope → 看控制台输出,比如:
source.js.jsx meta.function.js
你的 snippet 必须写成:
'source.js':<br> 'cons':<br> 'prefix': 'cons'<br> 'body': 'console.log($1);$2'
而不是 javascript、.js 或 source.jsx——错一个字符,整个 snippet 就归零。
第三方 AI 补全(如 TabNine)无法导出“学习到的项目知识”
TabNine 在本地索引了你项目里的函数名、变量名,这部分数据存在 ~/.tabnine 或项目级 .tabnineignore 相关路径下,但它是二进制索引,不可读、不可移植、也不该手动拷贝。强行复制过去大概率触发重新索引,甚至损坏状态。
如果你依赖它补全自己写的工具函数,唯一可迁移的是:
- 项目根目录下的
.tabnineignore(文本文件,控制哪些目录不索引) -
~/.atom/config.cson中 TabNine 插件的启用状态和置信阈值(如tabnine.confidenceThreshold)
模型权重和训练记忆,永远绑定在原设备上。想在新环境获得同等效果,只能让它重扫一遍项目。

















