不幸的是,没有办法做你想做的事。参数只能作为数组传递,不能作为带空格的字符串传递。带空格的参数用引号括起来并作为一个完整的参数传递。
引用自documentation:
args - 传递给程序进行调试的参数。这个属性是
输入数组并将单个参数作为数组元素。
github 上一位开发人员的回答:
将命令行转换为“args”的规则很简单:每个由空格分隔的命令行参数都需要成为“args”属性的单独项。
示例:
Command:
tar -cvf test-14-09-12.tar /home/test/
Args:
"args": ["-cvf", "test-14-09-12.tar", "/home/test/"]
Command:
tar -c --file new.tar --include='*foo*' old.tgz
Args:
"args": ["-c", "--file", "new.tar", "--include='*foo*'", "old.tgz"]
更新:
我找到了解决方案,使用 sn-ps。
您可以将 sn-p 添加到全局 sn-ps 或项目 sn-ps,如 here 所述:
"args_transform": {
"scope": "jsonc",
"prefix": "args_transform",
"body": "${1/((\"(.*?)\")|('(.*?)')|([^ ]+))( )?/\"$3$6$5\"${7:+, }/g}"
}
在您需要在launch.json(或任何其他带有cmets文件的json)中写入args的地方写入args_transform,按tab,插入您的args,然后再次按tab
但它可能无法与某种参数一起正常工作,如果需要 sn-p 修复,请在 cmets 中写入错误