preferences → browse packages…是唯一可信路径,直接打开当前生效的packages目录;installed packages仅存.sublime-package压缩包,插件源码必须以文件夹形式放packages顶层,大小写与官方名严格一致。

Preferences → Browse Packages… 才是真实路径入口
Sublime Text 插件实际加载位置不是你网上搜到的默认路径,而是运行时动态解析出来的目录。手动拼 %APPDATA%\Sublime Text\Packages 或 ~/Library/Application Support/Sublime Text/Packages 极易出错——便携版、Snap 安装、自定义 data 目录都会让这些路径失效。
唯一可靠方式:打开 Sublime,点击菜单 Preferences → Browse Packages…,它会直接在文件管理器中打开当前生效的 Packages/ 目录。这个路径由 Sublime 内部逻辑决定,不受系统、版本(ST3/ST4)、安装方式影响。
验证方法:按 Ctrl+` 调出控制台,输入:
import sublime; sublime.packages_path()
回车后显示的路径,必须和 Browse Packages… 打开的位置完全一致。
Installed Packages 和 Packages 是两个完全不同的地方
Installed Packages/ 和 Packages/ 同级,但作用完全不同:
-
Installed Packages/只存放.sublime-package压缩包,是 Package Control 自动解压的缓存区;你往里拖插件文件夹,Sublime 根本不会扫描它 -
Packages/才是插件真正运行的位置,所有手动安装的插件源码都必须以**文件夹形式**放在这里的顶层 - 便携版用户注意:
Packages/在Data/Packages/下,不是根目录;Snap/Flatpak 用户无法从外部访问该路径,Browse Packages…是唯一入口
GitHub 下载的 ZIP 插件为什么“装不上”?
常见现象:解压后放进 Packages/,重启也没反应,控制台报 reloading plugin XXX failed 或静默失败。
根本原因:GitHub 自动生成的 ZIP 解压后多了一层冗余目录,比如 GitGutter-master/ 或 CompareSideBySide-main/。Sublime 不会递归扫描子目录,只认 Packages/ 下的**第一层文件夹**。
正确操作步骤:
- 解压 ZIP,进入那层
-master或-main文件夹 - 找到含
__init__.py或主模块(如git_gutter.py)的子文件夹 - 把它单独剪切出来,重命名为规范名(如
GitGutter),确保无空格、无中文、无点号、首字母大写 - 整体拖进
Packages/顶层,不能嵌套在User/或其他子文件夹里 - 检查该文件夹内至少有一个
.py文件,且其中定义了sublime_plugin.TextCommand或sublime_plugin.EventListener的子类
插件不生效?重启不等于重载
改完文件夹位置后只按 Ctrl+R 或关窗口再开,插件大概率仍不加载——Sublime 后台进程可能还在运行,旧的 Python 环境未释放。
彻底重启方法:
- macOS:右键 Dock 图标 → Quit(不是关窗口),确认进程退出
- Windows:任务管理器 → 结束所有
subl.exe进程 - Linux:终端执行
pkill -f "subl"
验证是否成功:重启后按 Ctrl+Shift+P,输入插件命令名(如 Compare Side by Side),能出现即表示已加载。若控制台报 ImportError: No module named 'xxx',说明依赖缺失,需一并安装对应模块。
最常被忽略的一点:插件文件夹名大小写必须与代码中 import 语句或类名声明严格匹配——Linux/macOS 区分大小写,Windows 虽不敏感但建议统一规范,避免跨平台同步时出问题。











