Code Runner 运行后终端一闪而过是因为默认使用非交互式终端,解决方法是设置 code-runner.runInTerminal 为 true 并将 code-runner.preserveFocus 设为 false。

Code Runner 运行后没输出,终端一闪而过
这是最常见现象:点一下运行,终端弹出来又立刻消失,根本看不到结果。根本原因是 Code Runner 默认用的是非交互式终端执行,跑完就退出,尤其对需要输入、或没加 console.log / print() 的脚本特别明显。
解决方法很简单,但必须改配置:
- 打开 VSCode 设置(
Ctrl + ,),搜code-runner.runInTerminal,勾选它——让代码在集成终端里跑,而不是弹临时窗口 - 再搜
code-runner.preserveFocus,设为false,否则焦点不跳到终端,你甚至不知道它跑过了 - Python 用户额外注意:
code-runner.executorMap里 Python 对应的命令默认是python -u,-u是为了禁用输出缓冲,别手动删掉
Python/Node.js/Go 等语言运行结果乱码或报错找不到命令
Code Runner 不自带解释器,它只是调用你系统 PATH 里的 python、node、go。所以报 command not found 或中文变问号,基本都是环境没对上。
检查和修复步骤:
- 在 VSCode 集成终端里直接敲
python --version或node -v,确认能正常返回——如果不行,先配好系统 PATH,别指望插件帮你找路径 - Windows 用户如果用 Git Bash 或 PowerShell 作为默认终端,可能遇到编码问题;在设置里把
code-runner.terminalRoot设为""(空字符串),让它用 VSCode 默认终端(通常是 CMD 或 Windows Terminal) - Go 用户注意:
code-runner.executorMap中 Go 的默认命令是go run "$fileName",但如果你文件不在 module 根目录,会报no required module provides package;此时得改成go run "$fileNameWithoutExt"或手动go mod init
想自定义运行命令(比如加参数、进指定目录、用特定版本)
Code Runner 允许按语言精细控制执行逻辑,关键就是改 code-runner.executorMap 里的 JSON 配置项。不要怕改,它只影响你本地。
实操建议:
- 点击左下角齿轮 → “设置” → 搜
executorMap→ 点右边“在 settings.json 中编辑”,直接写 JSON - 比如让 Python 总是用
python3.9而不是系统默认的python:"python": "python3.9 -u \"$fileName\""
- 比如运行前先进入文件所在目录(避免相对路径出错):
"javascript": "cd \"$dir\" && node \"$fileName\""
- 注意双引号和转义:VSCode 的 JSON 里路径变量如
$fileName必须用"$fileName"包裹,且内部有空格时必须加引号,否则 shell 会截断
运行 C/C++ 时提示 “无法启动程序,找不到指定文件”
Code Runner 对 C/C++ 默认只编译不运行,而且依赖 gcc 或 g++ 命令可用。错误信息里说“找不到指定文件”,往往不是缺源文件,而是缺编译器,或者编译后没生成可执行文件。
关键动作:
- 确保已安装 MinGW(Windows)或 Xcode Command Line Tools(macOS)或 build-essential(Linux),并在终端验证
gcc --version可用 - 检查
code-runner.executorMap中 C 的配置,默认是gcc "$fileName" -o "$fileNameWithoutExt" && "$fileNameWithoutExt";如果源文件名含空格或特殊字符,$fileNameWithoutExt会出错,建议改成"gcc \"$fileName\" -o \"$fileNameWithoutExt\" && ./$fileNameWithoutExt"(显式加./) - C++ 同理,但记得用
g++,且链接标准库时可能需加-lstdc++(尤其老版本 MinGW)
$dir 和 $fileName 看似简单,但在不同终端、不同操作系统里展开时机和转义规则不一样。改完配置别忘了重启 VSCode 终端,不然旧缓存还在。










