code runner插件不支持一键运行整个项目,仅执行当前文件或选中代码块;常见问题包括runinterminal未启用、文件未保存、解释器路径未配置、executormap设置错误等。

Code Runner 插件本身不提供“一键运行整个项目”的能力,它只执行当前打开的文件或选中代码块——这是你点 Ctrl+Alt+N 却没反应、或输出一闪而过、或报 ModuleNotFoundError 的根本原因。
为什么按 Ctrl+Alt+N 没输出,终端一闪就消失
默认 code-runner.runInTerminal 是 false,插件把命令扔进非交互式子进程执行,跑完立即退出。尤其对含 input()、print() 但没加 -u、或没显式输出的脚本,根本看不到结果。
- 必须在设置里搜
code-runner.runInTerminal,勾选启用(设为true) - 再搜
code-runner.preserveFocus,设为false,否则焦点留在编辑器,你甚至不知道终端已弹出 - Python 用户别删掉默认命令里的
-u参数——它禁用输出缓冲,否则print("hello")可能卡住不显示
Python 脚本 import 报错或找不到文件怎么办
Code Runner 默认在工作区根目录($workspaceRoot)执行,但你的 main.py 和 utils.py 可能在子目录里;或者虚拟环境没被识别,pip list 有包,Run Code 却说 ModuleNotFoundError。
- 改
code-runner.executorMap中的python条目,加上cd $dir &&切到文件所在目录:"python": "cd $dir && python -u "$fileName"" - 若用虚拟环境,路径必须写绝对路径,比如
"C:\myproj\.venv\Scripts\python.exe -u"(Windows)或"/Users/me/myproj/.venv/bin/python -u"(macOS/Linux) -
code-runner.cwd设为$dir或$workspaceRoot,别依赖默认值
怎么让 C/C++、Go、TypeScript 正常运行
Code Runner 默认命令只适配最简场景:单文件、无依赖、无编译配置。一旦涉及头文件、模块、TS 编译或 Go module,原命令立刻失效。
- C/C++:默认
g++ -o xxx xxx.cpp不带-I或-L,报fatal error: xxx.h: No such file or directory。应改成:"cpp": "cd $dir && g++ -I./include $fileName -o $fileNameWithoutExt.out && ./$fileNameWithoutExt.out" - Go:若当前目录无
go.mod,go run "$fileName"会报no Go files in current directory。多文件项目直接用go run .,并确保cd $dir - TypeScript:需先编译再运行,
"typescript": "cd $dir && tsc $fileName && node $fileNameWithoutExt.js",前提是全局装了tsc
中文乱码、命令 not found、快捷键失灵的共性原因
这些表象不同,根源高度一致:Code Runner 不自带任何解释器或编译器,它只是调用你系统 PATH 里的 python、node、gcc。它读不到 conda 环境、pyenv 版本、PowerShell 执行策略,也分不清 python 和 python3。
- 先在 VSCode 集成终端里手动敲
python --version或where python(Windows)、which node(macOS/Linux),确认命令可用且路径正确 - Windows 用户若用 Git Bash 或 PowerShell 作默认终端,可能触发编码或执行策略问题;可在设置里把
code-runner.terminalRoot设为空字符串,强制回退到 CMD - 快捷键无效?检查是否文件未保存(
Untitled-1类标签页会被跳过),或被其他扩展劫持(如 Shell Command Guard)
真正卡住人的从来不是“怎么点运行”,而是搞清「当前这行命令到底在哪个目录、用哪个解释器、以什么环境变量跑起来」——所有这些,都压在 code-runner.executorMap 这一个 JSON 字段里,错一个引号、少一个 $、路径变量写成 $fileDirname(错误)而非 $dir(正确),结果就是静默失败或报一堆看似不相关的错误。











