不能直接同步整个 Packages 目录,因其含缓存、平台相关二进制文件及 Package Control 自动管理的解压内容,易致冲突、失效或版本错乱;应仅同步 User 目录并用 Package Control 的 installed_packages 清单声明插件。

为什么不能直接同步整个 Packages 目录
直接把 ~/.config/sublime-text-3/Packages(Linux/macOS)或 %APPDATA%\Sublime Text 3\Packages(Windows)整个目录丢进云盘再软链,看似省事,实则容易出问题。Sublime Text 会往这个目录里写缓存、临时文件(比如 Cache/、Index Files/),这些文件在多设备间频繁同步极易冲突;某些插件还会生成平台相关路径的二进制文件(如 PyInstaller 打包的可执行模块),跨平台时直接复用会报错或静默失效。
更关键的是:Installed Packages/ 目录下存放的是 .sublime-package 文件,它们由 Package Control 自动解压到 Packages/ 对应子目录——如果你同步了整个 Packages,反而可能干扰 Package Control 的自动管理逻辑,导致插件重复加载或版本错乱。
只同步 User 目录 + 显式导出插件列表才是可靠组合
真正需要跨设备一致的,只有 User 目录里的配置文件(Preferences.sublime-settings、Package Control.sublime-settings、各插件的 *.sublime-settings)和你手动放进去的插件源码。其余部分应交由 Package Control 控制。
- 先确保
Package Control已安装并正常工作(可通过Ctrl+Shift+P→Install Package验证) - 打开
Preferences → Package Settings → Package Control → Settings – User,找到"installed_packages"字段,复制整个数组内容 - 把这个数组粘贴到新设备的同名文件中(路径:
Packages/User/Package Control.sublime-settings) - 重启 Sublime Text,Package Control 会自动拉取缺失插件,且只安装列表里声明的版本
这样做的好处是:配置同步靠符号链接实时生效,插件安装靠声明式清单驱动,两者解耦,互不干扰。
符号链接必须在 Sublime 关闭状态下操作
如果 Sublime 正在运行,它会锁定 Packages/User 目录及其子文件,此时执行 ln -s 或 mklink 可能成功,但重启后 Sublime 读不到配置,或者反复创建空 User 目录覆盖你的链接。
正确顺序:
- 关闭所有 Sublime Text 实例(包括后台进程,macOS 可用
Activity Monitor检查,Windows 用任务管理器,Linux 用ps aux | grep sublime) - 移动原
User目录到云盘路径(例如~/Nutstore/SublimeSync/User) - 在原位置执行符号链接命令:
ln -s ~/Nutstore/SublimeSync/User ~/.config/sublime-text-3/Packages/User(Linux/macOS)或mklink /D "%APPDATA%\Sublime Text 3\Packages\User" "D:\Dropbox\SublimeSync\User"(Windows) - 确认链接有效:
ls -l ~/.config/sublime-text-3/Packages/User应显示指向云盘路径,且cat ~/.config/sublime-text-3/Packages/User/Preferences.sublime-settings能正常读取
Windows 上 mklink 权限和路径空格问题最常踩坑
Windows 默认禁止普通用户创建符号链接,直接运行 mklink 会报错:系统不支持所请求的操作。必须以管理员身份运行命令提示符或 PowerShell。
另一个高频问题是路径含空格(比如 Sublime Text 4.app 或 My Dropbox),mklink 不自动处理,会导致链接目标被截断。务必用英文双引号包裹完整路径:
mklink /D "%APPDATA%\Sublime Text 3\Packages\User" "C:\Users\Alice\Dropbox\SublimeSync\User"
注意:/D 参数不可省略(表示目录链接),且目标路径必须存在,否则链接会变成无效的“悬挂链接”,Sublime 启动时不会报错,但所有 User 配置都不生效——这是最难排查的问题之一。
真正麻烦的不是建链接,而是确保每次修改都只发生在单一设备上,且等云盘状态图标变成“已同步”再切到另一台机器。哪怕只是改了一行 keymap,多端同时写入也会让云服务产生冲突副本,而 Sublime 不会主动合并,只会静默加载第一个读到的文件。


















