Git同步Sublime Text配置最可靠,需跟踪Packages/User和Installed Packages目录,特别要包含Package Control.sublime-settings文件,并统一换行符为LF。

用 Git 同步 Packages 和 Settings 目录最可靠
Sublime Text 的用户配置和插件都集中在两个目录:Packages/User(含 Preferences.sublime-settings 等)和 Installed Packages(含 .sublime-package 文件)。Git 能精确跟踪这些文件的变更,且跨平台一致。
实操建议:
- 先关闭所有 Sublime 实例,避免写入冲突
- 在终端中进入 Sublime 的数据目录(不同系统路径不同):
– macOS:~/Library/Application Support/Sublime Text/Packages
– Windows:%APPDATA%\Sublime Text\Packages
– Linux:~/.config/sublime-text/Packages - 用
git init初始化仓库,git add User/(只同步User目录,避免同步第三方插件源码) - 把
Installed Packages/中的.sublime-package文件也加入 Git(它们是已安装插件的二进制快照,重装时可直接双击触发安装) - 每次换机后,先拉取最新配置,再手动在 Sublime 的
Preferences → Browse Packages…中确认User目录被正确覆盖
云盘方案慎用:硬链接或符号链接容易失效
有人尝试将 Packages/User 整个目录软链到 Dropbox / iCloud / OneDrive,但 Sublime 启动时会检查路径所有权和时间戳,遇到符号链接或跨卷挂载常报错:Unable to load settings 或插件不加载。
常见问题:
- iCloud Drive 在 macOS 上默认启用“优化存储”,可能使
.sublime-settings文件变成占位符,Sublime 读取为空 - Windows 的 OneDrive “按需文件” 模式会导致
Installed Packages/下的.sublime-package文件显示为灰色(未下载),Sublime 无法识别 - 多设备同时写入同一云同步目录,可能引发 JSON 配置文件损坏(如
Preferences.sublime-settings变成乱码或半截内容)
Package Control 本身不保存插件状态,必须导出 Package Control.sublime-settings
很多人以为只要同步了插件目录,重装后就能自动恢复全部插件——其实不然。Package Control 的启用/禁用状态、安装列表、通道设置,全存在 Packages/User/Package Control.sublime-settings 里。这个文件不提交到 Git,新机器就只会空有插件文件,但 Sublime 不认它们为“已启用”。
关键操作:
- 确保该文件在 Git 跟踪范围内:
git add "User/Package Control.sublime-settings" - 文件中重点关注字段:
"installed_packages"(数组,列出了所有应启用的插件名)、"bootstrapped"(应为true)、"channels"(如["https://packagecontrol.io/channel_v3.json"]) - 若新机器首次启动后插件未加载,打开 Sublime 控制台(
Ctrl+`),输入import package_control; package_control.package_control.PackageControl().list_packages()查看是否识别到已安装插件
Windows 与 macOS 插件路径差异小,但注意 Preferences.sublime-settings 的换行符
Git 默认在 Windows 上检出 CRLF,在 macOS/Linux 上检出 LF。而 Sublime 对 Preferences.sublime-settings 的 JSON 解析对换行符敏感:若文件末尾多一个 \r,可能报错 Error trying to parse settings: Invalid JSON character。
解决方法:
- 在项目根目录加
.gitattributes文件,内容写:* text=auto eol=lf
- 或全局设置:
git config --global core.autocrlf input(macOS/Linux)或false(Windows,禁用自动转换) - 同步后,用
file -i Preferences.sublime-settings(macOS/Linux)或Get-Content .\Preferences.sublime-settings | Format-Hex(PowerShell)确认结尾是0a(LF)而非0d 0a(CRLF)
Git 同步不是一劳永逸——每次新增插件后,记得手动运行 Package Control: Install Package,再立刻 git add User/Package\ Control.sublime-settings && git commit。漏掉这步,下次同步就只剩文件,没有启用记录。










