SyncSettings插件仅同步Packages/User/下的特定文件:Preferences.sublime-settings、Package Control.sublime-settings、平台快捷键文件、.sublime-snippet、.sublime-color-scheme;不同步插件本体(如Packages/Emmet/)、Session.sublime_session、缓存或Local/目录文件。

SyncSettings 插件能同步什么,不能同步什么
它只打包并上传 Packages/User/ 目录下的文件,且仅限特定类型: Preferences.sublime-settings、Package Control.sublime-settings、平台对应的 Default (Windows).sublime-keymap 或 Default (OSX).sublime-keymap、所有 *.sublime-snippet、*.sublime-color-scheme。不会同步插件本体(如 Packages/Emmet/)、不会同步 Session.sublime_session、不会同步 Local/ 或任何缓存文件。
常见误判:你装了 Vue Syntax Highlight 插件,它的 snippet 在 Packages/Vue Syntax Highlight/snippets/ 下——SyncSettings 看不见,也不会传。必须手动把想备份的 snippet 复制进 Packages/User/,且确保 XML 结构合法(含 <tabtrigger></tabtrigger> 和 <scope></scope>)。
Setup 失败的三个高频原因
控制台显示 “Upload completed” 不代表成功。真正落地要靠两个字段写入:github_token 和 gist_id 都得是非空字符串,否则下次上传会新建 Gist,旧配置彻底丢失。
- token 没粘对:授权后 GitHub 返回的 token 只显示一次,必须立刻复制粘贴进 Sublime 输入框;粘错位置(比如浏览器地址栏)会导致
Sync Settings.sublime-settings里github_token字段为空 - 网络拦截:企业内网或机场 Wi-Fi 常屏蔽
api.github.com,导致 HTTP 401 或超时;换用 Microsoft 账户登录 VSCode 同步更稳,但 SyncSettings 只认 GitHub - 插件未激活:没先确认
Package Control: Install Package能正常弹出搜索框,就直接搜 SyncSettings——结果插件根本没加载,命令面板里压根不出现Sync Settings: Setup
跨平台同步快捷键时的换行符陷阱
.sublime-keymap 是 JSON 格式,但 Windows 默认用 CRLF(
),macOS/Linux 用 LF(
)。SyncSettings 上传时不会转换,下载到另一平台后,Sublime 解析失败,快捷键全部失效,且无报错提示。
修复方法很简单:在 VS Code 或其他支持换行符切换的编辑器里打开刚同步下来的 Default (OSX).sublime-keymap(或 Windows 版),底部状态栏点换行符标识,选 “LF” 或 “CRLF” 匹配当前系统,保存即可。别用记事本改——它会悄悄加 BOM,同样导致解析失败。
离线环境或公司内网怎么用
SyncSettings 提供 sync_local 模式,本质是把 ZIP 包存在本地路径而非 Gist。启用方式:打开 Preferences.sublime-settings,加一行:"sync_local": true,再指定路径:"sync_local_path": "/path/to/your/local/backups"(Linux/macOS)或 "sync_local_path": "D:\sublime-backup"(Windows)。
这个模式下所有 Upload/Download 命令都走本地文件系统,不发网络请求。适合内网开发、飞行模式调试,或单纯不想把配置上传云端的用户。注意路径必须存在且 Sublime 有读写权限,否则控制台报 Permission denied。
真正麻烦的不是上传或下载,而是不同机器上 Python 环境差异导致插件加载失败——比如某插件依赖的模块在新机器上没装,或者 Package Control.sublime-settings 里写了已卸载插件的名字。这种问题 SyncSettings 本身不处理,得靠手动执行 Package Control: Satisfy Dependencies 或删掉无效条目。


















