便携启动前必须建好data目录,即在sublime_text.exe同级目录下严格创建首字母大写、其余小写的“data”文件夹;否则sublime将默认写入%appdata%,导致u盘迁移后插件丢失、主题还原、快捷键失效。

便携启动前必须建好 Data 目录
Sublime Text 不会自动识别“便携模式”,它只认一个硬性条件:在 sublime_text.exe(Windows)或 sublime_text(macOS/Linux)同级目录下,存在且仅存在一个严格命名为 Data 的文件夹(首字母大写,其余小写,不能是 data、DATA 或带空格/下划线的变体)。一旦缺失或命名错误,它就退回到系统默认路径(如 %APPDATA%\Sublime Text),所有配置和插件都写错地方。
常见错误现象:
- U 盘插到另一台电脑,插件全没了、主题还原、快捷键失效
-
Preferences → Browse Packages…打开的是C:\Users\XXX\AppData\Roaming\Sublime Text\Packages,而不是 U 盘路径 - 首次运行后
Data\Packages\下没生成User、Default等子目录
实操建议:
- 务必从官网下载 ZIP 包(文件名含
Sublime Text Build xxxxx x64.zip),不要用 .exe 安装器,也不要信第三方“便携版” - 解压后,在该目录下手动新建文件夹,名字只能是
Data(大小写敏感) - 双击
sublime_text.exe启动,立刻执行Preferences → Browse Packages…验证路径是否落在Data\Packages内
Package Control 必须手动装进 Data\Installed Packages
即便 Data 目录已生效,旧版 Python 2 脚本(含 urllib2)在 Sublime Text 4 上会直接失败,控制台报 Error validating download 或 No module named urllib2。这不是网络问题,而是脚本本身不兼容。
实操建议:
- 打开 Sublime 控制台(
Ctrl+`),粘贴官方 Python 3 兼容安装脚本(需含urllib.request和 SHA256 校验) - 若脚本失败,直接去 packagecontrol.io 下载
Package Control.sublime-package - 将该文件放入
Data\Installed Packages\(不是Packages!),重启编辑器 - 验证:命令面板输入
Package Control: Install Package能正常弹出列表即成功
手动安装插件必须放对位置:Data\Packages 不是 Data\Installed Packages
插件分两类:.sublime-package 文件(压缩包格式)要放进 Data\Installed Packages\;而 GitHub 下载的源码(ZIP 解压后的文件夹)必须放进 Data\Packages\。放反了,Sublime 就加载不了——90% 的“插件没反应”源于此。
实操建议:
- 通过
Preferences → Browse Packages…打开的路径,就是当前生效的Data\Packages目录 - GitHub 下载的 ZIP,解压后删掉
-master或-main后缀,重命名为简洁名(如Emmet),再整体拖入Data\Packages -
.sublime-package文件(如从其他机器复制来的)只能放Data\Installed Packages\,不能放错层 - 重启 Sublime 后,检查
Preferences → Package Settings是否出现对应条目
备份与迁移只需同步整个 Data 目录
便携版的同步本质是文件同步,不是账号或云服务。只要 Data 目录完整,所有设置、插件、缓存、本地快捷键就全在里头。但前提是:必须彻底关闭 Sublime Text 再操作,否则进程锁住文件,复制出来的 Packages 可能损坏或被覆盖。
实操建议:
- 退出 Sublime Text(右上角 × 不够,要确认进程已结束,任务管理器里看不到
sublime_text.exe) - 直接复制整个
Data文件夹(不是只复制Packages\User)到另一台机器相同路径下 - 新机器首次启动前,确保
sublime_text.exe同级有Data文件夹,且内容已就位 - 特别注意:已安装插件不会自动跨机器迁移,因为旧插件实际在原机器的系统路径里,不在
Data中
最易被忽略的一点:便携版不等于“解压即用”,Data 目录必须在首次启动前就位,且大小写完全正确。哪怕只差一个字母,它就默默写回 %APPDATA%,后续所有操作都白忙。











