同步Sublime Text配置前须彻底退出程序,仅同步Packages/User下关键文件(如Preferences、Package Control设置及平台专属快捷键),并用符号链接+云盘实现跨平台同步,禁用Sync Settings插件。

同步前必须关掉 Sublime Text
Sublime 在运行时会持续写入 Packages/User 下的文件,比如自动保存 Preferences.sublime-settings、热重载插件配置、甚至往 Package Control.sublime-settings 里追加新插件名。你一边同步一边它一边改,结果不是覆盖就是残留 .tmp 或带波浪线的临时目录。
常见错误现象:Package Control.sublime-settings 里 installed_packages 列表突然变空;Session.sublime_session 被同步后导致另一台机器打开就崩;快捷键文件内容错乱。
- Windows:任务栏右键 Sublime 图标 → “退出”(不是关窗口)
- macOS:用
Cmd+Q,别只关窗口 - Linux:确认
ps aux | grep sublime没有残留进程
只同步 Packages/User 目录里的关键文件
全量同步 Packages 或 Installed Packages 是最常踩的坑——插件二进制包(.sublime-package)跨平台不兼容,缓存和本地状态文件(如 Local/、*.cache、Session.sublime_session)一并拖过去,轻则插件报 No module named 'package_control',重则启动失败。
真正该同步的只有三类:
-
Preferences.sublime-settings(全局设置) -
Package Control.sublime-settings(含installed_packages列表) - 平台专属快捷键文件:
Default (Windows).sublime-keymap、Default (OSX).sublime-keymap、Default (Linux).sublime-keymap - 其他可选:
*.sublime-snippet、自定义*.sublime-build、主题配置(如Theme - Default.sublime-theme)
用符号链接 + 云盘,别靠插件“自动同步”
Sync Settings 插件早在 2024 年就彻底弃用,它只读写 Preferences.sublime-settings 里极少数字段,完全不碰快捷键、插件列表、代码片段,更不会识别平台差异。你 Windows 上同步过去,macOS 打开直接加载 Default (Windows).sublime-keymap 失败,快捷键全废。
可靠做法是把 Packages/User 移到云盘(如 Dropbox/SublimeSync),再在原路径建符号链接:
- Windows:
mklink /D "%APPDATA%\Sublime Text 3\Packages\User" "D:\Dropbox\SublimeSync" - macOS/Linux:
ln -s ~/Dropbox/SublimeSync ~/.config/sublime-text-3/Packages/User
注意:符号链接创建前,确保目标路径已清空且 Sublime 已退出;否则链接会指向一个正在被写的目录,下次启动就可能损坏。
对配置文件加系统级只读锁
想防止误操作覆盖?别信 view.set_read_only(True) 或插件“只读模式”——它们只是 UI 层标记,Ctrl+S 仍能弹确认框,save_on_focus_lost 更是完全无视这个标记,直接调 fopen(filename, "w"),系统拒绝才报错。
真锁住,必须操作系统级权限:
- Windows:右键文件 → 属性 → 勾“只读” → 点“全部应用”(否则新建文件不继承)
- macOS:右键 → 显示简介 → 底部勾“锁定”(不是“共享与权限”)
- Linux:
chmod a-w Preferences.sublime-settings(a-w是关键,少个a组用户还能写)
设完立刻生效:Sublime 状态栏显示 read only,Ctrl+S 直接报 Permission denied,不缓存、不提示放弃修改——这才是防覆盖的硬边界。
跨设备同步时最容易忽略的是:不同系统下快捷键文件名不同、Package Control.sublime-settings 的 installed_packages 列表必须手动校验是否完整、以及符号链接路径中大小写敏感(比如 Linux 下 sublime-text-3 不是 Sublime Text 3)。


















