只同步packages/user目录无法恢复插件功能,因插件本体在packages/xxx/、安装缓存在installed packages/,必须整份迁移或每台重装插件并同步user目录。

同步时文件丢失,根本不是云盘或 Git 的问题,而是你动了不该动的目录、没关 Sublime、或混淆了 User 和插件代码的位置。
为什么同步后插件全没了、快捷键失效
因为只同步了 Packages/User,却漏掉了真正运行插件的 Packages/SideBarEnhancements/、Packages/EmmyLua/ 等目录,以及安装缓存 Installed Packages/。Sublime 启动时发现插件代码不在 Packages/ 下,就直接跳过加载——不报错、不提示、菜单变灰。
-
Packages/User只存你的修改:比如Preferences.sublime-settings、Default (Windows).sublime-keymap -
Packages/xxx/(非 User 下)才是插件本体,必须一并迁移或符号链接 -
Installed Packages/xxx.sublime-package是 Package Control 的安装记录,解压版存在时它会被忽略,但首次同步新机器时仍需保留以防重装失败
同步前必须退出 Sublime Text
只要进程还在,Installed Packages/ 里的 .sublime-package 文件可能被锁,Packages/ 下插件目录可能正被热重载写入,此时复制会导致文件截断、残留 ~ 或 .tmp 临时文件夹,后续加载失败。
- Windows:任务管理器中结束所有
sublime_text.exe(包括后台托盘进程) - macOS:活动监视器里 Force Quit
sublime_text - Linux:用
ps aux | grep sublime找进程,kill -9干净退出 - 验证方式:执行
Preferences → Browse Packages…,弹出窗口为空白或报错,才说明已退出
跨平台同步时最易丢的三类文件
不是所有 .sublime-* 都能混着传。Windows 和 macOS 的快捷键文件名不同,路径写法也不同,硬同步会直接失效。
-
Default (Windows).sublime-keymap和Default (OSX).sublime-keymap必须各自保留,不能删掉一个去“通用化” -
.sublime-snippet中若用了scope(如source.python),在另一平台若没装对应插件(如 Python 插件未加载),片段就静默不触发 - 含中文或空格的路径在
.sublime-project的folders字段里,若没启用enable_unicode_paths,Linux/macOS 可能解析失败而丢整个项目目录
符号链接比 Git 更适合日常同步
Git 适合版本控制和回滚,但不是实时同步工具。你改完一个 .sublime-settings,要 git add、commit、push,另一台机器还得 pull、重启 Sublime——中间有延迟,且多人编辑冲突难处理。符号链接 + 云盘才是真自动。
- 操作核心是“移动 + 链接”:把原
Packages/User剪切到云盘,再在原位置建链接,不是复制粘贴 - Windows 管理员 CMD:
mklink /J "C:\Users\用户名\AppData\Roaming\Sublime Text 4\Packages\User" "D:\Dropbox\SublimeConfig\User" - macOS/Linux 终端:
ln -s ~/Dropbox/SublimeConfig/User "~/Library/Application Support/Sublime Text 4/Packages/User" - 链接建好后,任何对
User的修改都会实时同步,但注意:别让两台设备同时改同一个.sublime-keymap,云盘可能产生conflicted copy
最容易被忽略的是:符号链接本身不会同步插件代码,只管 User;而真正让插件生效的,是 Packages/ 下那些带逻辑的目录。所以跨设备迁移,要么整份拷 Packages + Installed Packages,要么在每台机器上重新安装插件并确保 User 同步——没有中间态。











