code runner不是“装完就能跑”的万能按钮,它只负责把命令扔进终端,命令能否执行取决于系统path中的解释器/编译器是否可用,必须先验证python3 --version、gcc --version等在终端中可直接执行。

Code Runner 不是“装完就能跑”的万能按钮,它只负责把命令扔进终端——命令本身能不能执行、在哪儿执行、用哪个环境执行,全得你来兜底。别怪插件,先查终端里 python3 --version、gcc --version、javac -version 能不能敲出来。
运行前必验:终端里这些命令必须能直接执行
Code Runner 从不自带解释器或编译器,它只是调用你系统 PATH 里的可执行文件。很多人点 Ctrl+Alt+N 没反应,或报 command not found,问题一定出在这一步。
- Python 用户:别试
python,macOS 和新版 Linux 默认没这个软链,必须确认python3 --version有输出 - C/C++ 用户:运行
gcc --version或g++ --version;Windows 用 MinGW-w64 的,确保mingw64in已加进系统 PATH,且路径不含中文或空格(如C:Program Files会崩) - Java 用户:
javac -version和java -version都得有——只配了java是不够的,没javac就没法编译 - Go 用户:
go version要成功,且注意go run $fileName要求当前目录有go.mod,否则报no Go files in current directory
改 code-runner.executorMap 是绕不开的活儿
默认配置只适用于最理想环境:系统 Python 就叫 python、C++ 编译器就叫 g++、工作目录刚好对、没虚拟环境、没包结构……现实里几乎条条不满足。不改 executorMap,等于拿说明书当遥控器按——字都对,就是没反应。
- Python 用了虚拟环境?把
"python": "python -u"改成绝对路径,比如"python": "/Users/you/project/venv/bin/python -u"(macOS/Linux)或"python": "C:\Users\you\project\venv\Scripts\python.exe -u"(Windows) - Java 有
package com.example;?默认命令java $fileNameWithoutExt必然失败。得改成类似"java": "cd $dir/../.. && javac $dir/com/example/$fileName && java com.example.$fileNameWithoutExt",并确保文件真在com/example/子目录下 - C++ 在 Windows 上要加
.exe后缀:命令末尾写&& ./$fileNameWithoutExt.exe,Linux/macOS 则不用 - 所有变量大小写和拼写必须严格匹配:
$dir不是$DIR,$fileNameWithoutExt少个o就变空字符串,导致命令语法错误
中文乱码、输入卡死、一闪而过?全因没开 runInTerminal
Code Runner 默认用非交互式 shell 执行,stdout 直接捕获进 OUTPUT 面板——这个面板不继承终端编码,也不支持 stdin 输入。所以 input() 卡住、scanf 读不到、中文显示方块,都是同根问题。
- 必须在设置里搜
Run in Terminal并勾选它——这样命令就在底部集成终端中运行,走的是真实 shell 环境 - 顺手勾上
code-runner.clearPreviousOutput,避免旧输出堆叠干扰判断 - Windows 用户若仍有中文乱码,可在命令前加
chcp 65001 &&(UTF-8),例如:"c": "cd $dir && chcp 65001 && gcc $fileName -o $fileNameWithoutExt && ./$fileNameWithoutExt"
多文件、Makefile、依赖管理?别硬塞给 Code Runner
它只设计为单文件快速验证工具。试图让它处理 #include "utils.h" + main.c + utils.c,或自动找 Makefile,或加载 node_modules,就是在逼它干自己不擅长的事。
- 简单多文件 C:手动在
executorMap里显式列出源文件,比如gcc main.c utils.c -o main,但路径变量要用$dir/main.c这种写法才可靠 - 真正项目级构建,请转向
tasks.json+launch.json,它们才是 VS Code 官方支持的构建与调试方案 -
.code-runner.json可以放在项目根目录做局部覆盖,但优先级低于 workspace 设置,且不会自动递归生效到子文件夹
最常被忽略的一点:VSCode GUI 启动时可能根本没读你的 ~/.zshrc 或 ~/.bash_profile,导致 PATH 和终端里看到的不一致。macOS 用户请用终端执行 code . 启动编辑器;Windows 用户检查是否混用了 WSL 的路径——Code Runner 调用的是 Windows 原生命令行,不是 WSL 子系统。











