必须终止所有sublime进程、清空installed packages/目录、检查packages/user/和cache/残留,否则损坏包会被自动重装或引发启动错误;package control只校验不删除,静默跳过加载失败文件并记入控制台日志。

Sublime Text 没有真正意义上的“一键清理损坏安装包”功能,所谓“一键”实际是组合三步手动操作:先终止所有后台进程,再清空 Installed Packages/ 目录,最后重启验证。跳过任意一步,损坏包仍可能被 Package Control 自动重装或触发启动错误。
为什么 Package Control 不会自动清理损坏的 .sublime-package 文件
Package Control 在启动时只校验 Installed Packages/ 下文件的签名和完整性,但**不主动删除损坏包**——它会尝试加载,失败后静默跳过,同时把错误记入日志(View → Show Console 可见 Failed to load plugin 类报错)。更麻烦的是,只要该文件还在目录里,下次执行 Package Control: Upgrade Package 或同步登录后,它可能被重新解压、覆盖或引发冲突。
- 损坏通常表现为:插件命令消失但配置仍在、右键菜单残缺、控制台反复报
ImportError或SyntaxError -
Installed Packages/路径因版本而异:%APPDATA%\Sublime Text\Installed Packages\(Windows)、~/Library/Application Support/Sublime Text/Installed Packages/(macOS)、~/.config/sublime-text/Installed Packages/(Linux) - 别只删单个文件——整个目录清空最稳妥;
rm -rf *.sublime-package也行,但需确认没混入正常包
必须先杀光 sublime_text.exe 和 subl 进程,否则删不动
Windows 下 sublime_text.exe 和 subl.exe 常驻后台,会锁住 Installed Packages/ 目录下的文件句柄。直接删会提示“文件正在使用”,或删完重启又自动恢复(尤其开启 Sync 后)。
- Windows:打开任务管理器 → “详细信息”页 → 搜索
sublime_text.exe和subl.exe→ 全部右键“结束任务” - macOS:活动监视器 → 搜索
Sublime Text→ 强制退出所有匹配项(包括后台的com.sublimetext.4) - Linux:终端执行
pkill -f "sublime_text"或pkill -f "subl"
删完 Installed Packages 后,还要检查 Packages/User/ 和 Cache/
仅清 Installed Packages/ 不够——损坏包若曾成功加载过,会在 Packages/User/ 留下残留配置,在 Cache/ 留下坏索引,导致命令面板还能搜到命令、但执行就崩溃。
- 进
Packages/User/,删掉所有疑似关联的*.sublime-settings(如LSP-pyright.sublime-settings)和键位绑定文件中含该插件名的块 - Windows 清
%LOCALAPPDATA%\Sublime Text\Cache\,macOS 清~/Library/Caches/com.sublimetext.4/,Linux 清~/.cache/sublime-text/ - 特别注意
Saved Application State/(macOS/Linux)或Local/(Windows)——它可能缓存损坏状态,重启后还原旧行为
重装前务必确认 Package Control 已登出同步
只要执行过 subl --sync-login,Package Control 就会在首次启动时从云端拉取旧插件列表。哪怕你刚清空 Installed Packages/,它也会立刻重下损坏包并解压,前功尽弃。
- 运行
subl --sync-logout(确保subl在 PATH 中),或菜单栏Sublime Text → Preferences → Sync Settings → Logout - 检查
Packages/User/Package Control.sublime-settings是否已删除或不含"sync_login"字段 - 不确定是否登过?打开控制台输入
sublime.log_commands(True),启动时看是否有sync相关日志
最难清理的不是损坏包本身,而是它在 Packages/User/ 里留下的键位绑定和 Cache/ 里生成的半截索引——这两处不碰,编辑器表现就会“似卸非卸”,命令能搜到、点开就卡死,而且问题难以归因。











