sublime text无内置双向同步,必须分三类独立操作:仅同步packages/user下的.sublime-settings、.sublime-keymap、.sublime-snippet及插件用户配置;推荐符号链接+云盘实现零配置实时同步,或git管理版本但需手动提交;严禁硬拷整个packages目录,否则因缓存、插件源码、换行符差异引发importerror、插件失效或片段不触发。

Sublime Text 没有“双向配置同步”这个功能,所谓“两端互通设置”必须拆解为三类独立动作:跨设备用户配置同步、跨设备插件状态对齐、跨设备文件内容实时联动——每类机制互不兼容,混用必出问题。
只同步 Packages/User/ 目录,其他全删掉
硬拷整个 Packages/ 或 Installed Packages/ 是最常见翻车点。不同系统上 Python 环境、插件编译产物、缓存文件(如 Package Control.cache)不一致,会导致:
-
ImportError: No module named 'package_control'—— 缓存被覆盖后初始化失败 - 插件菜单变灰、快捷键失灵 —— 插件检测到路径与缓存 mismatch,直接拒载
-
.sublime-snippet显示在Ctrl+Shift+P里但按Tab不触发 —— XML 解析静默跳过(常因换行符 CRLF/LF 混乱或 scope 写错)
真正该同步的只有三类文件:
-
Preferences.sublime-settings(字体、缩进、主题等全局行为) -
Package Control.sublime-settings(installed_packages列表决定装哪些插件) -
*.sublime-snippet、*.sublime-keymap(你写的片段和快捷键)
所有插件自身的用户配置(如 SideBarEnhancements.sublime-settings)也落在 User/ 下,一并同步即可。
用符号链接 + 云盘实现零配置自动同步
这是最轻量、最接近“实时互通”的方案,适合个人多台设备,不碰 Git 命令。
- 退出 Sublime Text,否则文件被锁,链接会失败或内容不同步
- 用
Preferences → Browse Packages…确认当前User/路径(ST4 用户注意把路径里的3换成4) - 把整个
User/剪切到云盘(如Dropbox/SublimeConfig/User),再删除原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
重启 Sublime,改一个 .sublime-snippet,几秒内就能在另一台设备上看到。但注意:多设备同时编辑同一 snippet 文件 → 产生 .sync-conflict,Sublime 直接跳过加载;iCloud 会同步 .DS_Store,导致 XML 解析失败且无报错。
用 Git 同步 User 目录,适合需要版本控制的人
Git 方案不自动同步,但可控、可回溯、能处理平台差异(比如用 platform 键写条件配置)。
- 路径确认(ST4):
Windows:%APPDATA%\Sublime Text 4\Packages\User
macOS:~/Library/Application Support/Sublime Text 4/Packages/User
Linux:~/.config/sublime-text-4/Packages/User - 进入该目录,执行:
git init→git add .→git commit -m "init"→git remote add origin https://github.com/xxx/sublime-config.git→git push - 另一台设备克隆后,**不要直接覆盖原
User/**,而是用符号链接指向它(ln -s或mklink /J) - 日常更新靠手动:
git add+git commit+git push,Sublime 不会帮你自动提交
别信“Git 插件自动同步”——那是假的。Git 必须由你显式触发,否则改了设置等于没改。
远程文件“同步”本质是单向上传或直连编辑,不是配置同步
很多人混淆“远程文件同步”和“本地配置同步”。SFTP 插件的 upload_on_save 是本地改完→推远程,RemoteSublime(rsub)是远程开文件→本地直连编辑,二者互斥:
-
upload_on_save必须设为true,且配置写在项目级的sftp-config.json里(不是全局设置) -
sftp-config.json中local_path必须是你当前打开的文件夹路径,不能是父目录或空字符串 - 首次连接弹出主机指纹确认框,必须点“是”,否则后续所有同步都静默失败
-
ignore_regexes里别误写了sftp-config.json自身——它被忽略后插件就找不到配置,upload_on_save彻底不生效
真正容易被忽略的是:所谓“两端互通”,其实根本不存在统一通道。User 配置靠符号链接或 Git,远程文件靠 SFTP 或 rsub,插件安装靠 Package Control 自动拉取——它们各自走各自的路,强行绑在一起,只会互相干扰。











