需手动配置 code-runner.executorMap 实现自定义语言支持:一、修改用户级 settings.json 全局覆盖;二、在项目 .vscode/settings.json 中局部配置;三、启用 respectShebang 动态解析 shebang;四、结合 tasks.json 实现复杂构建链。
如果您在 VSCode 中使用 Code Runner 扩展,但希望它支持默认未包含的语言或自定义执行逻辑,则需要手动配置 code-runner.executorMap。以下是实现该目标的具体步骤:
本文运行环境:MacBook Air,macOS Sequoia。
此方法通过全局覆盖 Code Runner 的执行命令映射,使任意语言均可被识别并运行。配置生效后,所有工作区共享该设置。
1、打开 VSCode 设置界面,点击左下角齿轮图标,选择“设置”。
2、在搜索框中输入 code-runner.executorMap,找到对应配置项。
3、点击右侧“在 settings.json 中编辑”,进入 JSON 编辑模式。
4、在 "code-runner.executorMap" 对象内添加新语言键值对,例如为 .awk 文件添加执行命令:"awk": "awk -f $fileName"。
此方法将配置限制在当前项目内,避免影响其他项目,适合多语言混合工程或需差异化执行逻辑的场景。
1、在项目根目录新建文件夹 .vscode(注意开头为英文点号)。
2、在该文件夹中新建文件 settings.json。
3、写入包含 "code-runner.executorMap" 的完整 JSON 对象,确保外层有大括号包裹。
4、为 Bash 脚本添加带错误退出的执行规则:"bash": "set -e; bash $fileName"。
此方法
不依赖固定扩展名,而是读取源文件首行 shebang(如 #!/usr/bin/env python3),自动调用对应解释器执行,提升脚本可移植性。
1、在 settings.json 中将 "code-runner.respectShebang" 设为 true。
2、确保目标文件第一行以 #!/ 开头,且路径可被系统解析(如 #!/usr/bin/env node)。
3、保存文件后,右键选择“Run Code”即可触发 shebang 解析流程。
当单条命令不足以完成编译+运行流程时(如 Rust、Go 或需前置格式化),可绕过 executorMap,改用 VSCode 原生 task 机制,并让 Code Runner 调用该 task。
1、在项目 .vscode 目录下创建 tasks.json,定义 label 为 run-current-file 的 task。
2、在 settings.json 中设置:"code-runner.executorMap": {"rust": "echo 'use tasks.json' && exit 0"}。
3、修改 "code-runner.runInTerminal" 为 true,确保 task 输出可见。
4、在 tasks.json 的 command 字段中调用 cargo run --bin $fileBasenameNoExtension 等动态参数。