是否可以为VS Code中的不同任务分配不同的快捷方式?

Jon*_*win 32 visual-studio-code

VS Code允许在tasks.json中的["tasks"]数组中定义多个任务,并且具有属性isBuildCommand:true的那个任务在默认情况下获得键盘快捷键Ctrl + Shift + B.

我想为我创建的每个任务分配不同的键盘快捷键.这是可能的,如果是这样的话怎么样?

到目前为止,我发现的所有功能都是能够为命令"workbench.action.tasks.runTask"分配快捷方式,该命令将按字母顺序弹出所有任务的菜单,我可以上/下箭头.我想配置代码直接使用一个组合键运行每个任务.

小智 29

从VS Code 1.10开始,您可以workbench.action.tasks.runTask在键绑定中使用该命令,并将任务的名称作为参数传递.

VS代码任务文档给出了这样的例子:

{
    "key": "ctrl+h",
    "command": "workbench.action.tasks.runTask",
    "args": "build"
}
Run Code Online (Sandbox Code Playgroud)

  • (只是添加:这属于`keybindings.json`,而不是`tasks.json`,"args"actuall反映了`tasks.json`中的``taskName``和我的积极惊喜:空格不是问题,即`"args":"运行样本"`也可以正常工作.) (5认同)

Dir*_*mer 10

是的,还有一个可用于绑定快捷方式的属性.它的名字是isTestCommand.如果设置为true,则将Ctrl + Shift + T绑定到任务.我们有一个内部工作项,允许将任意快捷方式绑定到任务.


Fra*_*cke 10

自VSCode 1.19(2018年2月)起:

/myproject/.vscode/tasks.json你需要在你的npm任务中添加一个label(以前,现在已经弃用taskName的:).我把我的名字命名为我的package.json脚本:

    {
        "label": "ui",
        "type": "npm",
        "script": "ui"
    }
Run Code Online (Sandbox Code Playgroud)

然后,您通过用户键绑定中的标签引用该任务 /home/johndoe/.config/Code/User/keybindings.json:

{"key": "ctrl+r",
    "command": "workbench.action.tasks.runTask",
    "args": "ui"
},
Run Code Online (Sandbox Code Playgroud)

如果你想知道:不,在vscode中没有项目级别的键绑定.(原因在这里)


use*_*959 6

我刚刚提交了一个PR:https://github.com/Microsoft/vscode/pull/10676

因此,一旦合并,您将能够将任何任务分配给键盘快捷键.