Package Control未安装成功是插件失效的根源,需先通过Ctrl+Shift+P确认命令完整出现;若失败则执行ST4专用脚本(哈希以6f4c264a开头),成功后重启,否则手动下载文件放入Installed Packages目录;SnippetManager已停更且不兼容ST4,应改用Emmet或手动创建.sublime-snippet文件并正确设置scope。

Package Control 没装好,后面所有插件都白搭;SnippetManager 已停更多年,2026 年在 Sublime Text 4 上大概率报 ImportError: No module named 'urllib2' —— 别装它。
先确认 Package Control 装没装好
按 Ctrl+Shift+P 输入 Package Control,能完整看到一整列 Package Control: 开头的命令才算成功。如果只显示 Install Package 但点开就卡住或报 Unable to download packages,说明安装失败或哈希校验不通过。
此时别硬等,直接换 ST4 专用安装脚本(哈希以 6f4c264a 开头):
import urllib.request,os,hashlib; h ='6f4c264a24d23ca7df454c82994c8f2d'+'e'; pf ='Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler())); by = urllib.request.urlopen('http://packagecontrol.io/'+ pf.replace(' ','%20')).read(); dh = hashlib.sha256(by).hexdigest();print('Error validating download: %s'% dh if dh != h else 'Success! Please restart Sublime Text to finish installation.'); open(os.path.join(ipp, pf),'wb').write(by)
执行后必须重启 Sublime Text;若提示 ssl.SSLError 或超时,说明被墙,需手动下载 Package Control.sublime-package 文件,放进 Installed Packages 目录再重启。
别装 SnippetManager,改用 Emmet + 手动建 .sublime-snippet
Emmet 自带大量 HTML/CSS 片段,安装后即用,无需额外配置:
- 按
Ctrl+Shift+P→ 输入Package Control: Install Package→ 回车 → 输入Emmet安装 - 它会自动注册
source.html、source.css等 scope,比如输入ul>li*3+Tab就生成三项列表 - 不依赖运行时,兼容 ST4 和 Python 3.8+,不会因语法高亮插件变动而失效
自定义片段直接手动建文件,比插件管理更稳:
- 按
Ctrl+Shift+P→ 输入Tools: New Snippet调出模板(不能新建文本文件改后缀!缺根节点和CDATA包裹 Sublime 直接忽略) - 填好
tabTrigger(触发词)、scope(作用范围,如source.js)、content(内容),保存为Packages/User/xxx.sublime-snippet - 路径必须是
Packages/User/,可通过Preferences → Browse Packages…进入;放错目录(比如桌面或Packages/Default/)不会加载
让 snippet 在 .vue / .tsx / .md 里生效
默认新建的 snippet scope 是 source.js,但在 .vue 单文件组件中,JS 块的真实 scope 是 source.vue(由 Vue Syntax Highlight 插件提供),不是 source.js。
要让它在 .vue 文件里触发,必须显式设 scope:
- 打开 snippet 文件,把
<scope>source.js</scope>改成<scope>source.vue</scope> - 支持多 scope:写成
<scope>source.vue, source.tsx, text.html.markdown</scope> - scope 名称得跟当前文件实际 syntax scope 一致,可在状态栏右下角看(或按
Ctrl+Alt+Shift+P查看当前 scope)
XML 格式零容忍:少一个 / 关闭标签、CDATA 里含未转义的 & 或 ,整个文件失效,且 Sublime 不报错。
同步自己的 snippet 到另一台机器
Sublime 本身不提供云同步,“一键同步”靠的是 Sync Settings 插件,它把 Packages/User/ 下的 .sublime-snippet 文件打包上传到 GitHub Gist。
关键前提:
- 你的自定义 snippet 必须放在
Packages/User/xxx.sublime-snippet,放错位置不会被识别 -
Sync Settings默认只同步Settings、Key Bindings、snippets、packages四类,其他如 color schemes 需在插件设置里手动勾选 - 首次同步前,必须在 GitHub 创建 Personal Access Token,并在
Sync Settings设置中填入,否则上传直接失败,错误信息是Gist ID not found
真正容易被忽略的点是:scope 值和文件路径必须严格匹配,哪怕多一个空格、大小写不对、用了中文标点,snippet 就不会加载——它不报错,只是静默失效。

















