sublime text 用户配置存于 packages/user/ 目录,推荐用 git 同步该目录而非整个 packages;避免 dropbox/icloud 同步以防冲突和解析错误;插件通过 package control.sublime-settings 列表手动安装确保兼容性。

Sublime Text 配置文件存在哪?
默认不自动同步,所有用户数据(插件、设置、快捷键)都存本地,路径取决于系统:~/Library/Application Support/Sublime Text/Packages/(macOS)、%APPDATA%\Sublime Text\Packages\(Windows)、~/.config/sublime-text/Packages/(Linux)。Packages/ 下的 User/ 文件夹是关键——你改的所有 Preferences.sublime-settings、Key Bindings.sublime-keymap 都在这儿。
直接复制整个 Packages/ 不推荐:里面混着插件源码和缓存(比如 Package Control.cache),不同机器上插件版本或依赖可能不一致,硬同步容易触发插件加载失败或 ImportError。
用 Git 手动同步 User/ 目录最稳
不用第三方插件,不依赖 Sublime 自带的“云同步”(它只同步极简设置,且已弃用),Git 是目前最可控的方式。核心思路:把 User/ 目录单独拎出来,作为独立仓库托管到 GitHub/GitLab。
操作步骤:
- 退出 Sublime Text,避免文件被锁
- 把原
Packages/User/重命名为User-backup(留个底) - 在
Packages/同级建新目录,比如sublime-user-config,进里面git init,再把User-backup里的内容复制进去(别带隐藏文件如.DS_Store) -
git add . && git commit -m "init user config",推到远程仓库 - 在另一台电脑上,克隆这个仓库到对应
Packages/路径下,然后用符号链接指向它:ln -s ~/path/to/sublime-user-config User(macOS/Linux)或用mklink /J(Windows)
注意:每次改完设置后,得手动 git add & commit & push;别指望 Sublime 自动帮你提交——它压根不知道你在用 Git。
为什么别用 Dropbox / iCloud 同步整个 Packages/
看起来省事,但实际踩坑率极高。Dropbox 的文件冲突机制和 Sublime 的实时写入行为不兼容:比如你两台电脑同时打开 Sublime,它会频繁写 session.sublime_session 和插件缓存,Dropbox 可能生成 conflicted copy,导致下次启动报错 Unable to load API: No module named 'package_control' 或插件菜单消失。
更隐蔽的问题是权限与路径差异:iCloud 在 macOS 上对 ~/Library/ 同步支持不稳定,Windows 的 OneDrive 对 %APPDATA% 路径也有类似限制;而且不同系统间换行符(CRLF vs LF)可能让 .sublime-keymap 解析失败,表现为快捷键突然失灵。
插件怎么同步才不出问题?
插件本身不该放进 Git 仓库,但得确保多台机器装的是同一套——靠 Package Control.sublime-settings 里的 installed_packages 列表 + 手动触发安装最可靠。
具体做法:
- 在
User/里保留一份干净的Package Control.sublime-settings,只保留installed_packages字段(删掉其他无关项) - 新机器拉取配置后,先重启 Sublime,等 Package Control 初始化完成(状态栏出现 “Ready”)
- 再执行
Package Control: Install Package,输入插件名逐个装——别图快用批量脚本,有些插件(如SideBarEnhancements)依赖特定加载顺序,跳过交互式安装容易卡在“Installing…”不动 - 装完检查
Preferences → Package Settings里有没有对应菜单,没有就说明没真正加载成功
同步不是一劳永逸的事。插件更新、Sublime 大版本升级(比如从 ST3 到 ST4)、甚至系统语言切换(影响某些插件的路径解析),都会让看似相同的配置在某台机器上失效。最常被忽略的点是:符号链接是否仍有效,以及 User/ 目录里有没有残留的临时文件(比如 ~.sublime-keymap 这种编辑器自动生成的备份)。






