code-runner执行慢的根本原因是未启用终端模式,导致print()缓冲、input()卡死、环境变量缺失;必须设"code-runner.runInTerminal":true,关闭全量保存、启用当前文件保存,并为Python添加-u参数禁用缓冲。

code-runner 执行慢,根本不是“运行慢”,而是没进终端
code-runner 默认在输出面板执行命令,不经过 shell,导致 print() 缓冲、环境变量缺失、虚拟环境未激活、甚至无法响应 input()。这不是性能问题,是执行上下文错位。
- 必须设
"code-runner.runInTerminal": true,强制走集成终端 - 关闭自动保存干扰:
"code-runner.saveAllFilesBeforeRun": false,只保存当前文件("code-runner.saveFileBeforeRun": true) - Python 用户加
-u参数避免 stdout 缓冲:"python": "python -u -i $fileName"写进code-runner.executorMap - 别用默认的
python $fileName—— 它不带-u,也不进交互模式,脚本一有input()就卡死
终端启动慢,90% 是 shell 配置或虚拟环境在拖后腿
每次点“运行”都要等 2–3 秒才看到命令提示符?问题不在 VSCode,而在你终端启动时加载了什么。
- Windows 用户检查
terminal.integrated.defaultProfile.windows:PowerShell 启动重,换成Command Prompt或路径明确的Git Bash - Python 项目务必清空
python.terminal.launchArgs(设为[]),否则每次开终端都执行source venv/bin/activate,torch 类大包会扫描全部site-packages - macOS/Linux 用户检查 shell 的
.zshrc或.bashrc:删掉耗时命令(如npm pkg ls、git status --short)、禁用非必要插件(如 oh-my-zsh 主题里调用 API 的部分) - WSL2 用户严禁直接打开
\wsl$路径——改用Remote - WSL插件,在 WSL 环境内启动 VS Code
外部工具链本身卡住,VSCode 只是背锅
比如你配了 eslint --fix 作为保存钩子,但 ESLint 在遍历 node_modules;或者用 prettier --write 格式化一个 10MB 的 JSON。VSCode 没在“运行”,它只是等那个进程退出。
- 给工具加超时和范围限制:ESLint 配
--ext .js,.jsx,Prettier 加--ignore-path .prettierignore - 避免全量扫描:把
node_modules、dist、build加进files.watcherExclude,否则保存文件时这些目录的监听器也会被触发 - 确认工具是否真的需要每次运行:比如
pylint可以用--fail-on=E替代全量检查,tsc --noEmit比tsc快得多 - 别让 VSCode 代理所有命令——对重型工具(如 Webpack、Cypress),直接切到终端手动跑,更可控
files.watcherExclude 配不生效?那大概率是写错了位置或漏了通配符
这个配置只在工作区级 .vscode/settings.json 生效,用户级设置无效;而且 **/node_modules/** 和 node_modules/ 完全是两回事。
- 必须写成
"**/node_modules/**": true,**/表示任意层级,不能省略 - 至少包含:
"**/node_modules/**"、"**/dist/**"、"**/.git/**"、"**/__pycache__/**" - Python 项目补:
"**/venv/**"、"**/.mypy_cache/**";前端补:"**/build/**"、"**/out/**" - 改完必须关掉整个 VSCode 窗口再重开——热重载不触发 watcher 重新初始化
真正卡住人的,往往不是“怎么配”,而是没意识到 VSCode 从不运行代码,它只负责唤起外部进程并等待结果。一旦你开始盯着“运行”按钮发呆,就该去查终端日志、看进程树、或者直接在系统终端里手动执行那条命令——问题几乎总在壳外。



















