code --disable-extensions 可立即验证是否为插件问题:若禁用后正常,则100%是插件导致崩溃;否则需排查gpu、权限或vscode本体。

code --disable-extensions 能立刻验证是不是插件问题
只要 VSCode 闪退、反复弹 Extension host terminated unexpectedly 或启动卡在空白界面,第一件事不是重装,而是终端执行 code --disable-extensions。Windows/macOS/Linux 都适用,注意别拼错 extensions(常见误写为 extension),也别加引号。
执行后能正常打开且编辑流畅 → 100% 是某个启用的插件导致崩溃;如果依然闪退或白屏,问题不在插件层,得查 GPU、系统权限或 VSCode 本体损坏。
- macOS 用户若提示
command not found: code,先去 VSCode 菜单选Shell Command: Install 'code' command in PATH - Windows 用户可在
Win + R输入cmd后直接运行该命令 - 这个命令只禁用本次启动的所有第三方插件,不改动任何配置或缓存
Developer: Start Extension Bisect 是最快锁定元凶的方法
手动一个个禁用太慢,尤其当你装了几十个插件时。Developer: Start Extension Bisect 是 VSCode 内置的二分排查工具,3–4 轮就能精准定位到肇事插件。
按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入并运行该命令,它会自动把插件分成两组,禁用其中一组并重启。你只需回答“是”(问题复现)或“否”(正常),它就会持续缩小范围。
- 比“逐个启用”更可靠,能避开组合冲突(比如 A 和 B 单独没事,一起开就崩)
- 不依赖日志是否可读——哪怕
exthost崩得太早没留下错误,它也能工作 - 运行完确认插件 ID 后,别急着卸载,先用
code --disable-extension ms-python.python验证一次
删插件目录比禁用更彻底,但别误删关键文件夹
有些插件被“禁用”后仍会在启动时尝试初始化(尤其是老版本 Python 或 SFTP 插件),残留逻辑照样触发崩溃。这时禁用只是假象,必须物理删除对应目录。
路径如下:
- macOS/Linux:
rm -rf ~/.vscode/extensions/ms-python.python-*(用通配符匹配版本号) - Windows:
del /s /q "%APPDATA%\Code\Extensions\ms-python.python-*"
⚠️ 注意:只删 Extensions 文件夹下的子目录,绝对不要碰 User 或 globalStorage ——后者存着你所有工作区状态、调试断点和插件数据,删了会导致窗口无法恢复、Git 记录丢失。
重启扩展宿主(Developer: Restart Extension Host)不能替代排查
Developer: Restart Extension Host 可热重启后台进程,恢复语法高亮、格式化等功能,但它只是临时止血。如果执行后几秒内又弹出 Extension host terminated unexpectedly,说明问题插件仍在激活阶段就失败了(比如找不到 Python 解释器、调用已废弃 API)。
这时候继续点重启毫无意义,必须转向日志或安全模式:
- 立刻运行
Developer: Open Extension Host Log,拉到末尾找ERROR行里的插件 ID - 若日志为空,说明崩溃发生在日志初始化之前,
code --disable-extensions就是唯一可信入口 - 某些插件(如 Tailwind CSS)重启后会扫描大量文件,短暂卡顿正常;但若卡住超过 10 秒,大概率是它本身加载逻辑有缺陷
python.exe 路径含空格)、Node.js 版本不兼容、或 VSCode 升级后插件未适配,这些细节往往藏在日志最后一行,而不是弹窗里。











