code --disable-extensions是唯一能100%跳过所有插件加载流程的起点,不读settings.json、不扫描.extensions.json、不触发任何activate()函数;Local History崩溃常由ms-python.python等插件在路径含空格/中文时spawn失败引发,需用--disable-extension逐个排查或物理删除插件目录根治。

code --disable-extensions 是唯一能跳过插件加载的起点
Local History 插件崩溃时,常伴随“Extension host terminated unexpectedly”弹窗或右键菜单直接消失——但此时你甚至点不开插件面板。别急着删插件,先用 code --disable-extensions 启动 VSCode。它不读取 settings.json、不扫描 .vscode/extensions.json、不执行任何插件的 activate() 函数,是真正干净的隔离环境。如果这时历史记录功能正常(比如右键能出现 Show History),那 100% 是某个插件干扰了 Local History 的初始化流程。
local-history 崩溃常被 ms-python.python 或 tailwindcss 插件触发
Local History 本身轻量,但它依赖文件系统监听和路径解析。而 ms-python.python、bradlc.vscode-tailwindcss、liximeng.simple-sftp 这类插件会在启动早期 spawn 外部进程(如 python、tailwindcss、ssh),若项目路径含空格或中文,它们未做参数 quote 就会静默失败,连带拖垮 Local History 的监听器。常见现象是:日志末尾出现 FATAL ERROR: spawn python ENOENT,但 Local History 报错反而藏在堆栈深处。
- 优先用
code --disable-extension ms-python.python测试 - 若仍崩,再试
code --disable-extension bradlc.vscode-tailwindcss - 注意命令拼写:
--disable-extension(不是--disable-extensions),ID 不加引号,大小写敏感
workbench.localHistory.enabled 被禁用会导致历史记录“假性崩溃”
Local History 插件安装后不生效,90% 是因为 workbench.localHistory.enabled 这个设置被手动关掉了。它和 files.localHistory.enabled 完全不同——后者是旧版/无效项,改了也没用。打开设置搜索 workbench.localHistory.enabled,确认开关为开启状态。另外两个关键前提也得满足:
- 文件必须已保存(不是
Untitled-1),且路径显示在编辑器标签页顶部 - 必须在资源管理器(Explorer)中右键该文件,不能在编辑器内容区或标签页上右键
- 项目根目录需有写入权限(尤其 Docker 容器、网络盘、macOS 加密卷下容易被静默拒绝)
崩溃太早打不开日志?直接删插件目录比禁用更彻底
有些旧版插件(比如 ms-python.python 2025.x 之前版本)即使被 UI 禁用,也会在 activate() 执行前就尝试读取 Python 路径并 spawn 子进程——此时禁用配置还没加载,崩溃照旧。这时候 --disable-extension 只能绕过,无法根除。物理删除对应目录才是真解法:
- macOS/Linux:
rm -rf ~/.vscode/extensions/ms-python.python-* - Windows:
%APPDATA%\Code\Extensions\ms-python.python-*下手动删文件夹 - 删完不用重启系统,直接运行
code即可
删完重装最新版,新版基本已修复路径 quote 和 Node.js 兼容问题。别忽略残留的 .incomplete 文件夹——它会让后续安装卡死,必须一并清理。


















