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

Is it possible to assign different shortcuts to different tasks in VS Code?

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

I would like to assign different keyboard shortcuts to each of the tasks I've created. Is this possible, and if so how?

到目前为止,我所发现的是能够为命令 workbench.action.tasks.runTask 分配快捷方式,这将弹出一个菜单,其中包含我可以 up/down 按字母顺序排列的所有任务。我想将代码配置为 运行 每个任务直接使用一个组合键。

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

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

因此,合并后您将能够将任何任务分配给键盘快捷键。

从 VS Code 1.10 开始,您可以在快捷键中使用 workbench.action.tasks.runTask 命令,并将任务名称作为参数传入。

VS Code task documentation给出了这个例子:

{
    "key": "ctrl+h",
    "command": "workbench.action.tasks.runTask",
    "args": "build"
}

截至 VSCode 1.19(2018 年 2 月):

/myproject/.vscode/tasks.json 中,您需要将 label(以前,现在已弃用:taskName)添加到您的 npm 任务中。

(我将我的标签命名为与我打算 运行 的 package.json 脚本相同的名称。但这只是个人风格,而不是技术需要):

    {
        "label": "ui",
        "type": "npm",
        "script": "ui"
    }

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

{"key": "ctrl+r",
    "command": "workbench.action.tasks.runTask",
    "args": "ui"
},

如果您想知道:不,vscode 中没有项目级键绑定。 Reasons here