sublime text覆盖升级必然失败,必须重装:st4基于python 3.8,与st3的python 2.7插件不兼容,覆盖会导致importerror、attributeerror等错误,且windows注册表、macos缓存、linux软链接均残留旧路径,需彻底卸载、清理data目录、安装官方包并迁移配置。

Sublime Text 覆盖升级后报错,基本没救——必须重装,所谓“一键修复”只是把错误掩盖得更慢。
覆盖安装直接导致插件和配置错乱
你看到的 ImportError: No module named 'urllib2'、__init__() got an unexpected keyword argument 'interactive' 或控制台满屏 AttributeError: module 'sublime' has no attribute 'version',根本不是某个插件坏了,而是 ST4 的 Python 3.8 运行时在加载 ST3 遗留的 Python 2.7 插件代码。覆盖安装会让 Packages/ 和 Installed Packages/ 目录混杂旧文件,缓存不清理、API 版本不校验、插件元数据错位,问题必然爆发。
- Windows 注册表残留 ST3 的
sublime_text.exe路径,导致新进程仍加载旧插件 - macOS 的
~/Library/Application Support/Sublime Text/Cache/里存着 ST3 编译的 .pyc,ST4 启动时直接执行崩溃 - Linux 下
/usr/local/bin/subl软链接指向旧版二进制,命令行调用永远走不通
真正有效的“一键”只有重装+迁移
所谓“一键”,其实是用命令行或脚本批量完成卸载、清理、安装、迁移四步,而非图形界面点几下。关键不是跳过步骤,是确保每步不遗漏:
- 先彻底退出所有 Sublime 进程:
killall sublime_text(macOS/Linux)或任务管理器结束全部sublime_text.exe - 删对 Data 目录:
%APPDATA%\Sublime Text 4(Win)、~/Library/Application Support/Sublime Text(macOS)、~/.config/sublime-text-4(Linux)——注意 macOS 不带版本号,Linux 是短横线 - 下载对应 build 的官方安装包(如
sublime_text_build_4169_x64_setup.exe),**不要**用 brew/cask 或第三方镜像 - 重装后立即运行
Ctrl+Shift+P → Package Control: Install Package,再逐个重装插件——别复制旧Installed Packages/下的 .sublime-package 文件,签名校验会失败并自动加入ignored_packages
升级后右下角不显示 Assembly / Python 等语法选项
这不是插件没装,是它被静默屏蔽了。ST4 启动时检测到插件 API 不匹配(比如用了已移除的 sublime.version),会自动把它塞进 ignored_packages 列表,且不提示。你点右下角永远找不到 x86 (GAS) 或 Python。
- 打开
Preferences → Settings,检查右侧用户设置中是否有"ignored_packages": ["Assembly (NASM)", "Emmet"]这类条目 - 大小写、空格、括号必须完全一致:
"assembly (nasm)"≠"Assembly (NASM)" - 删掉后,**必须执行**
Ctrl+Shift+P → Reload Syntax Definitions—— 重启 Sublime 不生效 - 仍不出现?说明插件根本未注册,换用
NASM Syntax(GitHub:sublime-nasm)或GAS Syntax(作者lunixbochs)
误覆盖代码文件后还能抢救吗
只要 Sublime 窗口还激活着、没切到终端或浏览器,就有机会——但窗口一旦失焦,缓存可能被回收,就真没了。
- 立刻按
Ctrl+`打开控制台,输入sublime.log_input(True)(用于后续排查快捷键,此时先不关) - 不要操作任何文件,直接按
Cmd+Shift+3(macOS)或Win+Shift+S(Win)截当前窗口全屏——这是最后的保险 - 如果文件刚被覆盖,Sublime 通常会在几秒内弹出
File has changed on disk. Do you want to reload it?,选 No,然后立刻复制编辑区内容保存为新文件 - 若没弹窗,说明缓存已丢,只能靠截图拼凑;别指望
Cache/目录——ST4 的缓存机制已改,旧路径里基本没源码
最常被忽略的点:重装后不手动迁移 Packages/User/ 外的构建系统、自定义 keymap 或 color scheme 路径,会导致功能看似正常实则缺失。比如你设了 "color_scheme": "Packages/User/MyScheme.sublime-color-scheme",但文件实际放在 Packages/MyTheme/ 下,就会静默回退到 Monokai,连错误提示都没有。











