Code Runner 是最稳定、覆盖语言最广的插件,支持选中 JS/Python 等代码段后按 Ctrl+Alt+N(Win/Linux)或 Cmd+Option+N(macOS)在集成终端执行,自动复用终端并添加分隔线和时间戳;但不保留上下文变量,且依赖正确语言模式识别。

Code Runner 直接运行选中代码段
VSCode 默认不支持「只运行选中的几行 JS/Python 代码」,必须靠插件实现。最稳定、覆盖语言最广的是 Code Runner,它把「选中 → 执行 → 输出到终端」这个链路做得很轻量。
安装后,选中任意代码块(比如 console.log('hello') 或 print(1+2)),按快捷键 Ctrl+Alt+N(Windows/Linux)或 Cmd+Option+N(macOS),就会在集成终端里执行——不是新开终端,而是复用当前终端,且自动加了分隔线和时间戳,方便区分多次执行结果。
- 注意:如果没反应,先确认你没选中空行或注释行;
Code Runner对纯空格/换行/注释不识别为有效代码 - Python 场景下,选中
def foo(): ...函数体再运行,它不会定义函数,而是直接执行函数体内的语句(类似 REPL 的exec()行为) - 默认输出在「CODE RUNNER」终端面板,不是调试控制台,所以
debugger或断点无效
Quokka.js 适合 JavaScript/TypeScript 实时反馈
如果你主要写 JS/TS,并希望「边写边看结果」,Quokka.js 比 Code Runner 更贴合——它不是“运行一次”,而是在编辑器内实时注入执行上下文,每行末尾自动显示值、类型、甚至差分对比。
比如写 const a = [1, 2, 3]; a.map(x => x * 2);,光标停在第二行末尾,右侧立刻出现 [2, 4, 6];改一个数,结果即时更新。这种反馈对算法验证、数据转换逻辑特别高效。
- 必须保存文件(或使用临时 Quokka 文件)才能启动,未保存的 .js 文件可能被忽略
- 不支持 Node.js 的某些全局变量(如
__dirname),因为它是沙箱环境,不是真实 Node 进程 - 免费版有 30 天试用,之后限制并发文件数(但单文件日常开发完全够用)
REST Client 运行 HTTP 请求片段
当你的「选中代码」其实是 HTTP 请求(比如测试 API),别用通用执行插件——REST Client 是唯一正解。新建一个 .http 文件,写:
GET https://jsonplaceholder.typicode.com/posts/1 User-Agent: vscode-restclient
然后选中整个请求块(含空行),按 Ctrl+Alt+R,响应直接内联显示在编辑器下方,带状态码、Header、格式化 JSON。
- 支持环境变量(
@host = https://api.example.com),但变量定义必须在请求上方且以@开头 - 不能跨文件引用变量;每个
.http文件是独立作用域 - 不支持
multipart/form-data的文件上传(需转 base64 或用 Postman)
为什么不用内置的 Run Selection?
VSCode 1.87+ 确实加了原生 Run Selection 命令(可通过命令面板调用),但它只适用于已配置好调试器的语言(如 Python 需装 Pylance + Python 插件),且行为不稳定:选中 import os; print(os.getcwd()) 可能报 NameError: name 'os' is not defined,因为每次执行都是全新上下文,不保留前序导入。
相比之下,Code Runner 和 Quokka.js 明确设计为「会话式执行」,前者缓存 import,后者维持完整模块上下文。真要依赖原生命令,得手动在设置里配 code-runner.executorMap,反而更易出错。
真正容易被忽略的是:所有这些插件都依赖「当前文件的语言模式」。如果一个 .js 文件被误识别成 plaintext(右下角显示「Plain Text」),快捷键就完全失效——务必点那里改成 JavaScript。











