插件和配置分别存于packages/各子目录和packages/user目录;需备份整个packages和installed packages文件夹,且必须关闭sublime text进程后再操作。

插件和配置都存在哪个目录里?
sublime text 的用户数据全在 Packages/User 目录下,但别只盯这儿——真正要备份的其实是整个 Packages 文件夹(含已安装插件)和 Installed Packages 文件夹(含 .sublime-package 二进制包)。Preferences.sublime-settings、所有 *.sublime-keymap、*.sublime-build 都在 Packages/User 里;而插件源码(比如 Package Control 解压后的文件夹)就散落在 Packages/ 同级各子目录中。
windows 默认路径:%APPDATA%Sublime TextPackages 和 %APPDATA%Sublime TextInstalled Packages
macos:~/Library/Application Support/Sublime Text/Packages/ 和 ~/Library/Application Support/Sublime Text/Installed Packages/
linux:~/.config/sublime-text/Packages/ 和 ~/.config/sublime-text/Installed Packages/
直接复制整个 Packages 和 Installed Packages 行不行?
行,但有前提:必须确保目标机器没运行 Sublime Text。只要 Sublime 在后台活着,它会锁住 Installed Packages 里的 .sublime-package 文件,并可能在你复制时覆盖 Packages/ 下正在被热重载的插件目录,导致部分插件丢失或损坏。
- 关掉所有 Sublime Text 进程(包括托盘里的)
- 备份前先检查
Packages/下有没有名字带~或.tmp的临时目录——那是异常退出留下的残骸,不用备份 -
Installed Packages/里如果混着旧版插件的 .sublime-package(比如Emmet.sublime-package),而Packages/里又有同名解压目录,优先保留解压目录,删掉 .sublime-package——因为解压版才是当前生效的
为什么不能只备份 User 目录?
因为 Packages/User 只存你的个性化配置,不存插件本身。比如你装了 SideBarEnhancements,它的核心逻辑在 Packages/SideBarEnhancements/,不在 User 里。只备份 User,新环境里插件根本不会出现,或者报 command not found 错误。
更隐蔽的坑是:某些插件(如 Package Control)会在首次启动时自动重建 Packages/ 下的自身目录,但重建的版本可能和你原来用的不一致——尤其当你之前手动改过插件源码,或用了 fork 分支。
- 确认
Packages/Package Control/是否存在且非空,否则迁移后ctrl+shift+p打不开命令面板 - 如果你用过
git clone方式安装插件(比如放到Packages/下某个 git 仓库),记得连 .git 文件夹一起备份,不然重装后无法git pull更新
迁移后怎么验证插件真生效了?
别只看菜单里有没有选项,得测真实行为。比如 BracketHighlighter 要打开一个带括号的文件,看高亮是否出现;SublimeLinter 要改一行代码触发 lint 报错。常见失效现象:
- 快捷键失灵 → 检查
Packages/User/default (XXX).sublime-keymap是否被覆盖,或插件目录名拼写大小写不对(macOS/Linux 区分大小写) - 右键菜单没新增项 → 插件没加载,用
ctrl+`打开控制台,看有没有ImportError或no module named - Package Control 显示 “No packages available” →
Packages/Package Control/缺文件,或Package Control.sublime-settings里bootstrapped设成了false
最省事的验证动作:重启 Sublime,按 ctrl+shift+p,输入 Package Control: List Packages,看列表是否和旧环境一致。少一个,就回去查那个插件目录是否存在、是否可读。
插件依赖 Python 环境,而 Sublime 自带的 Python 版本(3.3 / 3.8)和插件要求可能不匹配——这种问题没法靠备份解决,得单独处理。