package control 是 sublime text 4 的包管理框架,非插件;需通过官方脚本或手动安装(拖 .sublime-package 到 installed packages/),成功标志是 ctrl+shift+p 可执行 list packages 和 install package 并拉取列表。

Package Control 不是插件,它是 Sublime Text 4 的包管理框架——没它,Ctrl+Shift+P 里根本搜不到 Install Package,所有后续插件安装都会卡死在第一步。
怎么确认该用哪个安装脚本?
打开 Sublime Text 4 → Help → About Sublime Text,看顶部显示的是 Sublime Text 4 还是 Sublime Text 3。2026 年绝大多数人用的是 ST4,必须用带 hashlib.sha256 校验的新脚本;ST3 用户若误粘 ST4 脚本,会报 module 'urllib' has no attribute 'request'。
别信第三方博客里带“2022 年更新”或“v3.3.1”的代码块——唯一可信来源是 packagecontrol.io 页面顶部动态生成的 Python 脚本。当前(2026 年 5 月)ST4 推荐命令是:
import urllib.request,os,hashlib; exec(urllib.request.urlopen('https://www.php.cn/link/773ac275840384ef9c3704eae98ff82a/installation.py').read().decode('utf-8'))
执行前务必关闭所有旧版残留:进 Installed Packages/ 目录,删掉所有含 Package Control 字样的文件。
控制台执行后没反应或报错怎么办?
常见现象不是你操作错了,而是网络层被拦了:
-
CertificateError或URLError:说明 TLS 握手失败,不是脚本问题,别改https为http(packagecontrol.io 已强制重定向,反而触发更隐蔽中断) - 黑屏几秒后只显示
reloading plugin:大概率 DNS 解析慢或首次 TLS 握手卡住,等满 5 秒再判断状态栏提示 - macOS 提示
Operation not permitted:系统沙盒拦截写入,手动安装是唯一出路 - Windows 下
sublime.installed_packages_path()返回空:路径获取失败,也得切手动
此时别折腾脚本,直接换手动方式更稳。
手动安装 Package Control 的三步关键操作
手动不是“把 zip 解压到 Packages/”,而是把官方 .sublime-package 文件原样拖进 Installed Packages/ 目录:
- 访问 https://www.php.cn/link/773ac275840384ef9c3704eae98ff82a/Package%20Control.sublime-package 下载文件(注意 URL 中有空格编码
%20,不要手动替换成下划线) - 关闭 Sublime Text,打开菜单 Preferences → Browse Packages…,向上退一级,进入同级的
Installed Packages/文件夹(不是Packages/!) - 把下载好的
Package Control.sublime-package文件(后缀名必须完整保留)直接拖进去,重启编辑器
漏掉任一细节——比如解压、改名、放错目录——都会导致加载失败甚至命令面板卡死。
怎么才算真装成功?
别信菜单里突然多出的 Preferences → Package Settings → Package Control,那是旧版 UI 残留。真正生效只有两个硬指标:
-
Ctrl+Shift+P输入Package Control: List Packages,能弹出一个空列表(不是报错) -
Ctrl+Shift+P输入Install Package回车后,左下角出现Fetching list of available packages
首次拉取 channel 列表要 5–10 秒,尤其在国内;如果卡住无声无息,基本是网络层断了,不是插件源慢。此时运行 Package Control: Synchronize Packages 比重启 Sublime 更有效。
最易忽略的一点:装完 Package Control 后,必须先执行一次 Synchronize Packages,否则远程插件列表不会加载,搜 ChineseLocalization 或 Emmet 都会返回空——这不是插件不存在,而是本地缓存还是空的。











