41

执行任务(在本例中为货物构建)后,VSCode 终端中会显示以下内容:

> Executing task: cargo build <

(output of the task here)

Terminal will be reused by tasks, press any key to close it.

烦人的是,这让我离开了普通终端,然后我必须获得终端窗口的焦点并按下一个键才能返回。当我这样做时, cargo build 的输出就会消失。

我该如何阻止这种行为?

如何摆脱文本的第一行和最后一行?

4

5 回答 5

24

需要明确的是,执行任务总是会在 VS Code 中创建一个新的集成终端。没有办法解决这个问题。最重要的是要显示原来的终端,而不是新创建的集成终端。(我们希望显示原始终端。)

@Gregory Cosmo Haun 的解决方案将抑制消息“终端将被任务重用,按任意键关闭它”。但是,它仍然显示了新的集成终端,而不是普通终端。(所以你仍然必须按“任意键”来关闭该终端并显示原始终端)

更好的解决方案是 set "reveal": "silent",它仍然会创建一个新的集成终端,但不会显示它,除非在执行任务时出现错误。我还设置"clear": true(这是可选的),以便在执行任务之前清除终端。我故意省略"showReuseMessage": false(这是可选的),但你可以添加它。谁在乎提示是否被抑制?最重要的是新创建的终端没有显示,所以我不必“按任意键”来关闭它。

"presentation": {
  "reveal": "silent",
  "clear": true
}

顺便说一句,您也可以设置"reveal": "never",但如果执行任务时出现问题,您通常希望看到错误消息。

在我看来,这是最好的解决方案。是的,执行任务时总是会创建一个新的集成终端,但至少不会显示(除非出现错误),您可以放心地忽略它,而无需按任何键关闭它。

于 2019-08-05T08:50:19.173 回答
23

检查 VSCode 1.57(2021 年 5 月,OP 后 2.5 年)的新功能是否可以提供帮助:

自动关闭任务终端

任务presentation属性有一个新close属性。
设置closetrue将导致终端在任务退出时关闭。

{
  "type": "shell",
  "command": "node build/lib/preLaunch.js",
  "label": "Ensure Prelaunch Dependencies",
  "presentation": {
      "reveal": "silent",
      "revealProblems": "onProblem",
      "close": true
  }
}

[编辑:2018 年 8 月 18 日] 使用关闭选项时,将其切换到问题选项卡会更好,因为这样可以确保任务终端已关闭,但问题会正确突出显示。这是来自 VSCode 1.59.0。

于 2021-06-07T13:03:11.067 回答
8

有一个新的演示选项,称为showReuseMessage. 将以下内容添加到您的任务定义中。

"presentation": {
     "showReuseMessage": false
}
于 2018-10-30T18:43:52.417 回答
2

另一种解决方案是将输出窗口设置为auto-focus

将此添加到任务定义中:

    "presentation": {
        "focus": true
    }

然后它就不再那么烦人了,因为您可以通过单次按键关闭编译器输出。

这样做的好处是任务输出是可见的,因此您可以查看是否有任何错误或警告。

于 2019-07-13T10:00:40.753 回答
1

一种可能性是将以下命令添加到“任务”中:

"presentation": {
            "panel": "new"
        },

作为

"tasks": [
    {
        "label": "python",
        "type": "shell",
        "command": "python",
        "presentation": {
            "panel": "new"
        }
    }
]

这并不能完全解决问题,但至少不会将所有结果一个接一个地堆积在面板中。

灵感来自https://github.com/Microsoft/vscode/issues/35642

于 2018-02-15T08:08:05.960 回答