【问题标题】:Is it possible to assign different shortcuts to different tasks in VS Code?是否可以为 VS Code 中的不同任务分配不同的快捷方式?
【发布时间】:2015-07-15 10:28:02
【问题描述】:

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

我想为我创建的每个任务分配不同的键盘快捷键。这可能吗,如果可以,怎么办?

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

【问题讨论】:

标签: visual-studio-code


【解决方案1】:

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

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

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

【讨论】:

  • (只是补充一点:这属于keybindings.json,而不是tasks.json,“args”实际上反映了您在tasks.json 中的"taskName",令我惊讶的是:空格不是问题,即"args" : "Run Sample" 也可以正常工作。)
  • taskName 已弃用,您将改用label。例如,如果您有一个名为 prod 的 grunt 类型任务,您将在 args 中使用 grunt: prod,因为这是它的默认标签。
【解决方案2】:

截至 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

【讨论】:

  • 对于 macOS,keybindings.json 的位置似乎是 ~/Library/Application Support/Code/User/keybindings.json。更好的访问方式:命令面板 (⇧⌘P) --> 打开键盘快捷键 (JSON)
【解决方案3】:

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

【讨论】:

  • 它尚未实现,但有issue(2016 年 7 月的里程碑)。所以希望它会在 7 月发布。
  • 你需要在keybindings.json中加入这个: [ {"key": "ctrl+shift+t", "command": "workbench.action.tasks.test"} ]
  • 什么属性?
【解决方案4】:

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

因此,一旦合并,您就可以将任何任务分配给键盘快捷键。

【讨论】:

  • 这个添加了吗?当我在 task.json 中输入 commandBinding 时,我收到了不允许这样做的消息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-13
  • 1970-01-01
  • 2017-07-04
  • 1970-01-01
  • 1970-01-01
  • 2013-10-26
相关资源
最近更新 更多