如何让VS Code记住自定义构建任务的上次输入字符串?
实现VS Code构建任务记住上次输入的目标名称
原生VS Code的promptString输入类型本身不支持自动保存并填充上次输入的内容,但可以通过以下两种方式实现需求:
方法1:使用VS Code扩展
- 安装Input History扩展,它会自动记录你在VS Code各类输入框中的历史内容,包括任务输入的目标名称。触发任务输入时,按上下箭头即可调出之前输入过的内容,无需重复手动输入。
方法2:自定义脚本存储上次输入值
如果不想依赖扩展,可以通过脚本实现输入值的保存与自动填充:
- 创建一个名为
get_target.sh的shell脚本(放在项目根目录):#!/bin/bash LAST_TARGET_FILE=".last_build_target" # 读取上次保存的目标值 if [ -f "$LAST_TARGET_FILE" ]; then LAST_TARGET=$(cat "$LAST_TARGET_FILE") else LAST_TARGET="FooApp" # 设置初始默认值 fi # 提示用户输入,默认显示上次的值 read -p "Target: [$LAST_TARGET] " INPUT_TARGET # 若用户未输入,使用上次的值;否则用新输入的值 TARGET=${INPUT_TARGET:-$LAST_TARGET} # 保存本次输入的目标值 echo "$TARGET" > "$LAST_TARGET_FILE" # 输出目标值供构建任务使用 echo "$TARGET" - 给脚本添加执行权限:
chmod +x get_target.sh - 修改
tasks.json,移除原有的inputs配置,更新任务的command:
后续执行任务时,脚本会自动填充上次输入的目标名称,直接回车即可复用,输入新值也会自动保存为下次的默认填充值。{ "version": "2.0.0", "tasks": [ { "type": "shell", "label": "buildsys", "command": "buildsys build $(./get_target.sh)", "group": { "kind": "build", "isDefault": true }, "options": { "env": { "PATH": "${env:PATH}:/Dev/BuildSystem/bin" } }, "problemMatcher": ["$gcc"], "detail": "My custom build task" } ] }
内容的提问来源于stack exchange,提问作者Rob N
相关产品推荐
相关产品推荐

