VS代码:使用WSL / Bash运行任务

埃文·罗西卡(Evan Rosica)

WSL使获取gcc和其他Linux工具变得容易。您可以使用脚本快速配置WSL开发环境,因此,如果您弄乱了某些内容,则可以快速销毁它并以最小的成本重新开始。因此,我想在WSL而不是Windows本身上运行任务。

例如,在Sublime3中,我可以使用GCC的WSL安装来构建C代码,只需使用以下代码创建一个新的构建系统即可:

{
  "cmd" : ["bash", "-c", "gcc ${file_name} -o ${file_base_name} && ./${file_base_name}"],
  "shell": true,
  "working_dir": "${file_path}",
}

到目前为止,我一直在试图找出如何在VS Code上复制它的方法,但是没有运气。似乎至少有一个其他人设法完成了这项工作,所以应该有可能。

似乎正确的方法是配置tasks.json文件。相关行似乎是:

"command": "bash.exe",
    "args": ["-c", "'insert code here'"]

看来这告诉了powershell运行bash -c 'insert code here'任何人都可以提出正确的命令吗?


一些背景:

${file}是一个表示VSCode中活动文件的变量。这是所有预定义变量的列表

wslpath 是Windows 1803中附带的新bash命令,它采用Windows路径并返回wsl路径,例如:

$ wslpath "c:\Users\Evan\Google Drive\Development\Programming Languages\file.c"
/mnt/c/Users/Evan/Google Drive/Development/Programming Languages/file.c

我的尝试:

我尝试编写脚本来完成此操作,但是遇到了问题。要调用的task.json语法myscript应类似于以下内容(请注意,我们将文件名传递给脚本,以便脚本可以将其传递给GCC)。

"args": ["-c", "'myscript.sh \"${file}\"'"]

或按照这个答案

"command": "/path/to/script.sh"
"args": ["\"${file}\""]

myscript 可能看起来像这样:

#!/bin/bash
echo "File Path is here $1"
x=$(wslpath "$1")
gcc "$x" -o a.out
./a.out

VS代码文档

同构

无需脚本即可完成:

 "command": "gcc '$(wslpath '${file}')' && ./a.out"

${file} 将在以bash解析命令之前进行解析。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章