code --disable-extensions 是唯一可信的排查起点:它强制跳过全部插件加载逻辑,不读 settings.json、不触发任何 activate(),比 ui 禁用更彻底;若执行后运行正常,则 100% 为插件导致静默崩溃。

code --disable-extensions 是唯一可信的排查起点
VSCode 点运行按钮没反应,90% 不是代码或 Python 版本问题,而是某个插件在启动早期就让 Extension Host 崩溃了——此时禁用所有插件的 UI 操作根本没机会生效。必须用命令行强制跳过全部插件加载逻辑。
直接在终端执行:code --disable-extensions,然后打开你的项目,再试运行。如果这时能正常弹终端、输出结果,100% 是插件导致的静默失败。
-
--disable-extensions不读 settings.json,不触发任何插件 activate(),比“禁用全部扩展”干净得多 - 若仍崩溃,说明问题可能出在 VSCode 本体或系统环境(如中文路径、权限不足),先别折腾插件
- 想定位具体插件?用
code --list-extensions列出所有已装插件,再逐个--disable-extension ms-python.python测试
右上角 ▶️ 按钮消失或点击无响应
这个按钮不是 VSCode 自带功能,它依赖三个条件同时成立:当前文件语言模式正确、工作区已信任、且存在可激活的运行上下文(比如 Code Runner 已启用)。
检查步骤:
- 点右下角状态栏文字(如
Plain Text),选Change Language Mode→ 手动设成Python或JavaScript - 左下角看到黄色
Restricted Mode提示?点它 →Trust Folder and Subfolders - 确认
formulahendry.code-runner插件已安装且启用;在设置里搜code-runner.executorMap,检查python对应值是不是"python -u"(注意不是pyhton或空字符串)
点击 ▶️ 后终端一闪而过或空白
这不是没运行,而是输出被打到只读的 OUTPUT 面板,或进程启动后立刻退出。交互式脚本(含 input())必须进 Terminal 才能看见完整流程。
关键配置:
- 设置里搜
code-runner.runInTerminal,务必勾选;改完必须完全退出 VSCode 再重开 - 如果仍进 OUTPUT,直接在项目根目录的
.vscode/settings.json里加:"code-runner.runInTerminal": true - Windows 用户注意:中文路径 + 默认 gbk 编码可能导致 Python 解释器卡住;建议把
python.defaultInterpreterPath设为绝对路径,并用正斜杠/或双反斜杠\
AI 补全插件一开,运行/调试就失灵
通义灵码、GitHub Copilot、CodeWhisperer 这类插件不是“只补全”,它们会深度拦截 onType、onDidSaveTextDocument、甚至调试器启动信号。多个共存时,轻则光标乱跳,重则让 Debug Adapter 拒绝初始化。
实操建议:
- 只保留一个 AI 插件,其余全部卸载(不是禁用)——禁用不清理内存和事件监听器
- 特别注意
Alibaba.aliyun-lingma和GitHub.copilot同时启用时,onType事件会被反复截获,导致输入延迟、运行按钮失效 - 临时验证:按
Ctrl+Shift+P输入Developer: Toggle Developer Tools,点运行按钮后看 Console 是否有Cannot read property 'onDidChangeActiveTextEditor'类报错
真正麻烦的不是插件多,而是某些插件(比如旧版 Python 扩展、SFTP、AI 补全类)会在启动时尝试 spawn 外部进程,而路径含空格、中文或权限不足会导致静默失败——这种错误不会出现在 Output 面板,必须看 Extension Host Log 或用 --disable-extension 逐个排除。











