vscode原生不支持选中即运行,code runner是最稳的通用方案,通过临时文件执行选中代码;powershell用户可用f8;其他语言推荐jupyter、quokka.js或rest client等专用工具。

VSCode 原生不支持「选中即运行」,所谓 Ctrl+Enter 或 Cmd+Enter 直接执行选中代码,要么没反应、要么报 command 'terminal.runSelectedText' not found——这不是你配错了,是它真没这个命令。
Code Runner 是目前最稳的通用方案
它不依赖终端状态,也不要求你提前激活虚拟环境,本质是把 $selectedText 写进临时文件,再调解释器执行。对 Python、JS、Shell 等解释型语言效果最好。
- 安装扩展:搜索
Code Runner(作者 Jun Han),重启 VSCode - 选中一段完整可执行语句,比如
print("hello")或console.log(2+3);别只选print(这种半截子 - 快捷键:Windows/Linux 用
Ctrl+Alt+N,macOS 用Cmd+Option+N - 输出默认在 OUTPUT 面板;想进集成终端?设
"code-runner.runInTerminal": true
PowerShell 用户直接按 F8 就行
如果你写的是 PowerShell 脚本,不用装额外插件——PowerShell 官方扩展自带 F8 快捷键,选中后按一下就在当前终端里执行,天然继承 shell 环境、alias、模块加载状态。
- 适用场景:
Get-ChildItem *.log、$env:PATH、甚至带变量赋值的多行块 - 注意:必须是
.ps1文件,且已安装并启用PowerShell扩展 - 不适用:JS/Python/Shell 等其他语言,F8 对它们无效
别硬配 executorMap 管道命令
网上常见配置如 "python": "echo '$selectedText' | python -" 看似简洁,但实际极易翻车:
- 多行缩进会被 shell 当作语法错误,报错位置永远是第 1 行,根本看不出哪缩进错了
- 含中文、单引号嵌套、反斜杠转义时,
$selectedText传入管道前就可能被 shell 截断或误解析 - JS 用
node -e "$selectedText"同样脆弱:遇到换行、分号缺失、未闭合括号,直接SyntaxError - 真正可靠的临时文件方案,Code Runner 原生不暴露
$tempFile变量,得靠外部脚本中转——复杂度远超收益
更靠谱的替代路径
当 Code Runner 报错、或你需要上下文延续(比如前面定义了 data = [1,2,3],后面想跑 print(data)),就别强求“一键”了:
- Python:用 Jupyter 扩展 +
Shift+Enter,前提是文件已打开交互窗口(Python: Create Python Interactive Window) - JS/TS:装
Quokka.js,选中后Ctrl+K Ctrl+Q,自动补const、显实时值、标错行 - HTTP 请求:用
REST Client插件,选中GET https://api.example.com按Ctrl+Alt+R,不是通用执行器能替代的 - 所有情况:开集成终端(
Ctrl+Shift+`),Ctrl+V回车——快、准、反馈明确,还保留历史可回溯
真正容易被忽略的是:VSCode 拿到的永远只是纯文本,没有 AST、没有作用域分析、也没有“上文在哪”的概念。所谓“运行选中片段”,本质是在做解释器该干的事——而解释器只认合法语法和完整上下文。别指望一个编辑器插件替你补全 import、推导变量、或修复半截函数体。











