如何将VSCode命令作为任务运行

29

在Github上,VSCode有一个名为Running commands as tasks #11396的问题。这涉及将VSCode命令作为内部任务在VSCode中运行。

alexr00于2018年12月20日发表评论:

现在可以在tasks.json中使用命令并指向以下文档:

https://code.visualstudio.com/docs/editor/variables-reference#_settings-command-variables-and-input-variables

我已经阅读了这些文档,但仍然无法弄清楚如何做我想做的事情。首先,我想创建一个简单的任务,运行liveserver扩展启动代码:extention.liveServer.goOnline

是否有任何想法或查找位置?

1个回答

32

例如,你可以这样做:

    {
      "label": "run copyLinesDown command",
      //  "type": "shell",
      
      "command": "${command:editor.action.copyLinesDownAction}",

      // "command": "${command:extension.gist.open}"  // etc

      // "runOptions": {
      //   "runOn": "folderOpen"
      // }
    },

那是在 tasks.json 中的一个任务。当你运行该任务时,活动编辑器中的当前行将被复制下来。

所以我想如果你使用了

    "command": "${command:extension.liveServer.goOnline}",

在像上述任务中,应该运行扩展命令。 (请检查拼写,是extention还是extension?)

具体请参见命令变量

然后,您可以使用以下内容(在keybindings.json中)为该任务分配一个键绑定:

    {
        "key": "ctrl+h",            // binding of your choice
        "command": "workbench.action.tasks.runTask",
        "args": "run copyLinesDown command"
    }

2
谢谢你。我一直在尝试为命令找到“类型”。从来没有想过可以省略它。你的例子完美地解决了我的问题。不幸的是,它似乎无法识别来自插件的命令,例如:command:extention.liveServer.goOnline。 - Scott VanKirk
2
嗯,这就是为什么我尝试使用已安装扩展中的extension.gist.open命令,它完美地工作了。对我来说,似乎无论是使用shell还是process类型都可以正常工作。你是否尝试过使用你的命令的两个版本?例如,它可能需要process - Mark
好的,我是个白痴。我拼错了“extension”,谢谢Mark :) - Scott VanKirk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接