我可以在vs代码中为多种语言配置task.json文件吗?
我想在VS代码中配置一个我可以在vs代码中为多种语言配置task.json文件吗?,json,visual-studio-code,vscode-settings,vscode-tasks,Json,Visual Studio Code,Vscode Settings,Vscode Tasks,我想在VS代码中配置一个tasks.json文件来运行python和java代码,只需按一下: Ctrl+Shift+B 配置了Python和Java,但它需要两个不同的tasks.json文件 但是我可以在.vscode文件夹中保留一个tasks.json文件 如何将两个配置文件合并到tasks.json文件中 对于Python: { "version": "2.0.0", "tasks": [{ "la
tasks.json
文件来运行python和java代码,只需按一下:
Ctrl+Shift+B
tasks.json
文件
但是我可以在.vscode
文件夹中保留一个tasks.json
文件
如何将两个配置文件合并到tasks.json文件中
对于Python:
{
"version": "2.0.0",
"tasks": [{
"label": "Compile and run",
"type": "shell",
"command": "",
"args": [
"/usr/bin/time",
"-v",
"--output",
"sys.txt",
"timeout",
"5",
"python3",
"${relativeFile}",
"<",
"input.txt",
">",
"output.txt",
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": {
"owner": "py",
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}],
}
{
“版本”:“2.0.0”,
“任务”:[{
“标签”:“编译并运行”,
“类型”:“外壳”,
“命令”:“,
“args”:[
“/usr/bin/time”,
“-v”,
“--输出”,
“sys.txt”,
“超时”,
"5",
“蟒蛇3号”,
“${relativeFile}”,
"",
“output.txt”,
],
“集团”:{
“种类”:“建造”,
“isDefault”:正确
},
“问题匹配者”:{
“所有者”:“py”,
“文件位置”:[
“亲属”,
“${workspaceRoot}”
],
“模式”:{
“regexp:“^(.*):(\\d+):(\\d+):\\s+(警告|错误):\\s+(.*)$”,
“文件”:1,
"线":2,,
"栏目":3,,
“严重性”:4,
“信息”:5
}
}
}],
}
对于Java:
{
"version": "2.0.0",
"tasks": [{
"label": "Compile and run",
"type": "shell",
"command": "",
"args": [
"/usr/bin/time",
"-v",
"--output",
"sys.txt",
"timeout",
"5",
"java",
"${relativeFile}",
"<",
"input.txt",
">",
"output.txt",
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": {
"owner": "java",
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}],
}
{
“版本”:“2.0.0”,
“任务”:[{
“标签”:“编译并运行”,
“类型”:“外壳”,
“命令”:“,
“args”:[
“/usr/bin/time”,
“-v”,
“--输出”,
“sys.txt”,
“超时”,
"5",
“爪哇”,
“${relativeFile}”,
"",
“output.txt”,
],
“集团”:{
“种类”:“建造”,
“isDefault”:正确
},
“问题匹配者”:{
“所有者”:“java”,
“文件位置”:[
“亲属”,
“${workspaceRoot}”
],
“模式”:{
“regexp:“^(.*):(\\d+):(\\d+):\\s+(警告|错误):\\s+(.*)$”,
“文件”:1,
"线":2,,
"栏目":3,,
“严重性”:4,
“信息”:5
}
}
}],
}
很简单,您只需合并任务“:[]
数组并对任务进行唯一命名。tasks数组可以包含任意数量的tasks对象,有些对象也可以相互依赖
在这里,当您使用此选项和CTRL+SHIFT+B
时,它将显示选择任务的选项
{
“版本”:“2.0.0”,
“任务”:[
{
“标签”:“编译并运行Python”,
“类型”:“外壳”,
“命令”:“,
“args”:[
“/usr/bin/time”,
“-v”,
“--输出”,
“sys.txt”,
“超时”,
"5",
“蟒蛇3号”,
“${relativeFile}”,
"",
“output.txt”
],
“集团”:{
“种类”:“建造”,
“isDefault”:正确
},
“问题匹配者”:{
“所有者”:“py”,
“文件位置”:[“相对”,“${workspaceRoot}],
“模式”:{
“regexp:“^(.*):(\\d+):(\\d+):\\s+(警告|错误):\\s+(.*)$”,
“文件”:1,
"线":2,,
"栏目":3,,
“严重性”:4,
“信息”:5
}
}
},
{
“标签”:“编译并运行Java”,
“类型”:“外壳”,
“命令”:“,
“args”:[
“/usr/bin/time”,
“-v”,
“--输出”,
“sys.txt”,
“超时”,
"5",
“爪哇”,
“${relativeFile}”,
"",
“output.txt”
],
“集团”:{
“种类”:“建造”,
“isDefault”:正确
},
“问题匹配者”:{
“所有者”:“java”,
“文件位置”:[“相对”,“${workspaceRoot}],
“模式”:{
“regexp:“^(.*):(\\d+):(\\d+):\\s+(警告|错误):\\s+(.*)$”,
“文件”:1,
"线":2,,
"栏目":3,,
“严重性”:4,
“信息”:5
}
}
}
]
}
因为无法根据文件扩展名()告诉VSCode要运行哪个任务
您始终可以为生成任务创建键盘快捷键并执行它,而无需从弹出窗口中选择它。例如,对于下面的tasks.json
可以通过将其添加到keybindings.json
文件中来创建快捷方式
[{
"key": "ctrl+alt+h",
"command": "workbench.action.tasks.runTask",
"args": "Compile and run Python" // this text should match exactly with task "label"
}]
如果您打开了java或python文件(并且两个任务按照@tHeSID的建议“合并”),则只需重载键绑定:
{
"key": "ctrl+shift+B",
"command": "workbench.action.tasks.runTask",
"args": "Compile and run Python",
"when": "editorLangId == python"
},
{
"key": "ctrl+shift+B",
"command": "workbench.action.tasks.runTask",
"args": "Compile and run Java",
"when": "editorLangId == java"
},
有没有什么方法可以让它自动理解java或python文件的执行?我的意思是,如果我按照你说的做,它将提示选择java或python!到目前为止还没有,您可以为任务创建快捷方式,但我已在Answer中添加了如何执行此操作。您的任务文档链接是v0.1.0版本(VSC