尧图精选

Code Runner使用说明:VS Code 里快速运行调试代码,环境配置不再卡壳

🕒 发布时间:2026/10/2 14:35:58 📁 来源:尧图网络
1. 为什么你的 Code Runner 一跑中文就乱码刚装好 VS Code 的人十有八九第一个插件就是 Code Runner。它确实省事装完右上角多个三角按钮点一下就能跑当前文件不用切终端、不用敲python xxx.py。但真正用起来问题往往出在两个地方——中文输出变成一堆问号以及程序跑起来停不掉。先说乱码。你在 Windows 上写一段print(你好)Code Runner 默认把输出丢进「输出」面板而那个面板的编码和系统控制台的编码经常对不上。Windows 简体中文环境的 cmd 默认代码页是 936GBK而你的文件大概率存成了 UTF-8。两边不一致中文就花了。这不是 Code Runner 的 bug是编码链路没打通。再说停不掉。Code Runner 默认在输出面板里跑遇到while(true)或者等待输入的input()你按停止按钮它可能没反应因为进程还挂在后台。解决办法是让它改在集成终端里运行终端对进程的控制更直接CtrlC就能中断。这篇就围绕这两个坑展开顺带把多语言运行器配置、settings.json和launch.json的写法讲清楚。适合刚接触 VS Code、想让「写完就能跑、跑完能调」的人。核心检索词就三个Code Runner、VS Code 调试、环境配置。下面每一步都能直接复制粘贴跟着做就行。2. Code Runner 安装与多语言运行器配置Code Runner 的安装没什么门槛。打开 VS Code点左侧扩展图标搜索Code Runner作者是 Jun Han点安装。装完右上角会出现一个三角播放按钮这就是运行入口。离线环境可以下载.vsix包拖进扩展面板即可。它支持的语言非常多C、C、Java、Python、Go、Lua、Rust、TypeScript 等几十种。但「支持」不等于「开箱即用」——Code Runner 只是帮你拼一条命令丢给系统执行真正编译运行还得靠你本机装好的编译器或解释器。比如跑 C 要有 gcc跑 Go 要有 go 工具链跑 Python 要有 python。这一点必须先明确否则你会以为是插件坏了。运行方式有几种记住最常用的就行快捷键CtrlAltN运行当前文件右键菜单选Run Code右上角三角按钮选中部分代码再运行只跑选中的片段停止运行的默认快捷键是CtrlAltM或者在输出面板右键选Stop Code Run。但如前所述输出面板模式下停止经常不灵后面会改成终端模式。多语言配置的核心在settings.json。按CtrlShiftP输入Open User Settings (JSON)打开用户设置文件。Code Runner 的配置都挂在code-runner命名空间下。下面是一份可直接复制的片段覆盖了终端运行、编码、文件保存等关键项{ code-runner.runInTerminal: true, code-runner.saveFileBeforeRun: true, code-runner.clearPreviousOutput: true, code-runner.ignoreSelection: false, code-runner.executorMap: { python: python -u, c: cd $dir gcc $fileName -o $fileNameWithoutExt $dir$fileNameWithoutExt, cpp: cd $dir g $fileName -o $fileNameWithoutExt $dir$fileNameWithoutExt, go: cd $dir go run $fileName, java: cd $dir javac $fileName java $fileNameWithoutExt, javascript: node, lua: lua }, code-runner.executorMapByFileExtension: { .ts: ts-node } }这里几个参数值得解释。runInTerminal设为true是解决停止问题的关键它让代码在集成终端里跑CtrlC能直接中断。saveFileBeforeRun保证运行前自动保存避免你改了代码却跑的是旧版本。clearPreviousOutput每次运行清空上次输出看着干净。executorMap是自定义每种语言的执行命令。注意$dir、$fileName、$fileNameWithoutExt这些变量Code Runner 会在运行时替换成实际路径和文件名。C/C 那条命令先cd到文件所在目录再编译成同名可执行文件最后运行——这样能避免相对路径找不到源文件的问题。Python 加了-u参数强制不缓冲输出否则在终端里可能看不到实时打印。如果你只想改某一种语言不用把整个 map 抄一遍只写要覆盖的那一项即可Code Runner 会和默认值合并。改完保存重新运行一次就生效。3. 可复制的 settings.json 与 launch.json 调试配置上一节解决了「跑起来」这一节解决「调起来」。Code Runner 负责快速运行真正的断点调试要靠 VS Code 内置的调试器配置文件是launch.json。两者配合才是完整的开发闭环。先补全settings.json里和编码相关的部分。中文乱码的根因是终端代码页Windows 下可以在终端启动参数里强制切到 UTF-8。把下面这段加进settings.json{ terminal.integrated.profiles.windows: { PowerShell: { source: PowerShell, args: [-NoExit, /c, chcp 65001] } }, terminal.integrated.defaultProfile.windows: PowerShell, files.encoding: utf8, files.autoGuessEncoding: true }chcp 65001把当前控制台代码页切成 UTF-8files.encoding保证文件本身按 UTF-8 存取。这样文件编码和终端编码一致中文就不会花了。如果你用的是 cmd 而不是 PowerShell把 profile 换成对应的 cmd 配置参数同样是chcp 65001。接下来是launch.json。在项目根目录建一个.vscode文件夹里面放launch.json。按CtrlShiftP输入Debug: Open launch.json也能自动生成。下面给一份 Python 和 C 都能用的配置{ version: 0.2.0, configurations: [ { name: Python: 当前文件, type: debugpy, request: launch, program: ${file}, console: integratedTerminal, cwd: ${fileDirname}, justMyCode: true }, { name: C: 当前文件, type: cppdbg, request: launch, program: ${fileDirname}/${fileBasenameNoExtension}.exe, args: [], stopAtEntry: false, cwd: ${fileDirname}, environment: [], externalConsole: false, MIMode: gdb, preLaunchTask: build, setupCommands: [ { description: 为 gdb 启用整齐打印, text: -enable-pretty-printing, ignoreFailures: true } ] } ] }Python 配置里console设为integratedTerminal这样input()能在终端里正常输入断点也能停住。cwd设成文件所在目录避免相对路径读文件失败。C 配置依赖一个preLaunchTask也就是编译任务需要在.vscode/tasks.json里定义{ version: 2.0.0, tasks: [ { label: build, type: shell, command: g, args: [ -g, ${file}, -o, ${fileDirname}/${fileBasenameNoExtension}.exe ], group: { kind: build, isDefault: true } } ] }-g参数生成调试符号没有它断点会失效。tasks.json和launch.json配合按 F5 时会先编译再启动调试。这套配置对刚上手的人可能有点多但复制过去改改路径就能用比每次手动敲命令省事得多。4. 从运行到断点调试的完整验证配置写完得实际验证一遍不然你不知道哪一步没生效。我拿一段 Python 代码走一遍完整流程你可以照着做。新建demo.py内容如下def add(a, b): result a b return result if __name__ __main__: print(开始计算) x add(3, 5) print(f结果是 {x}) print(中文测试你好世界)第一步用 Code Runner 运行。按CtrlAltN观察输出。如果配置正确终端里会依次打印「开始计算」「结果是 8」「中文测试你好世界」中文正常显示。如果中文还是乱码回到第 3 节检查chcp 65001和files.encoding。第二步打断点调试。在result a b这一行左侧的行号区域点一下会出现一个红点这就是断点。按 F5 启动调试选择「Python: 当前文件」。程序会在断点处停下左侧「变量」面板能看到a3、b5此时result还没赋值。按 F10 单步跳过result变成 8。按 F5 继续程序跑完终端输出完整结果。第三步验证停止功能。写一个while True: pass的死循环用 Code Runner 运行然后在终端里按CtrlC进程应该立刻中断。如果按了没反应说明runInTerminal没生效回去检查settings.json。第四步验证选中运行。在demo.py里选中print(开始计算)这一行右键选Run Code应该只输出这一行。这个功能在调试单个表达式时很好用。走完这四步运行、调试、停止、选中执行就都验证过了。整个过程不需要你手动敲编译命令配置一次后面都是点按钮。5. Code Runner 常见报错排查对照用起来之后报错是难免的。下面列几个高频问题对照着查。中文乱码终端输出问号或方块。检查settings.json里有没有chcp 65001files.encoding是不是utf8。如果用的是 cmd确认 profile 配置正确。还有一种情况是文件本身存成了 GBK右下角编码切一下重新保存。command not found或不是内部或外部命令Code Runner 找不到编译器。比如跑 Go 报go: command not found说明 go 没装或者没加进 PATH。在终端里手动敲go version验证能出版本号才算配好。Python 同理敲python --version。local proxy failed或连接类报错如果你在代码里调用了外部 API可能是网络配置问题。检查代码里的请求地址是否正确本地代理设置是否干扰。这类报错和 Code Runner 本身无关是运行环境的事。401 Unauthorized调用需要鉴权的接口时出现通常是 API Key 没填、填错或者过期。检查请求头里的鉴权字段确认 Key 有效。如果用的是环境变量确认变量在当前终端会话里能读到。reading choices相关报错多见于交互式程序程序等待输入但终端没接上。把runInTerminal设为true让程序在终端里跑输入就能正常传递。断点不生效灰色空心圈调试器没加载到符号。C 检查编译时有没有加-gPython 检查justMyCode设置。另外确认launch.json里的program路径指向的是当前文件。OAuth 授权失败如果代码里集成了需要 OAuth 的第三方服务回调地址和客户端配置要对得上。这类问题看服务方的文档和编辑器配置无关。排查思路就一条先确认命令在终端里能手动跑通再怀疑插件配置。手动能跑、插件跑不了那一定是executorMap或路径变量的问题。6. 让 Code Runner 真正省心的几个习惯配置调好之后有几个习惯能让它更顺手。第一把saveFileBeforeRun打开避免跑旧代码。第二C/C 的executorMap里用cd $dir切到文件目录相对路径读文件就不会出错。第三调试和运行分开用——快速验证逻辑用 Code Runner需要看变量、单步跟踪时按 F5 走launch.json。如果你经常在不同机器上切换可以把settings.json和launch.json同步到账号或者放进项目模板里。这样换台电脑装完插件复制配置五分钟就能恢复工作环境。需要管理多个模型的 API Key、或者想统一接入不同服务时可以到 TaoToken API Keys 集中配置配合 接入文档 把请求地址和鉴权字段填对代码里就不用硬编码密钥了。想先验证模型返回是否正常用 模型对话 快速试一条请求确认通了再写进代码。长期做编码和 Agent 任务的话Coding Plan 能把额度管理起来省得每次手动换 Key。回到 Code Runner 本身它不是什么重型工具价值就在于「少切一次窗口、少敲一行命令」。把编码和终端这两个坑填平它就能安安稳稳陪你写完每一段代码。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →