web-dev-qa-db-ja.com

「ターミナルはタスクによって再利用されます。閉じるには任意のキーを押してください。」を取り除く方法動作?

タスク(この場合は貨物ビルド)を実行すると、VSCodeターミナルに次のように表示されます。

> Executing task: cargo build <

(output of the task here)

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

不愉快なことに、これは私を通常の端末の外に連れて行き、それから私は端末ウィンドウのフォーカスを取得し、キーを押して戻る必要があります。そして、そうすると、貨物のビルドの出力が消えます。

この動作を停止するにはどうすればよいですか?

テキストの最初と最後の行を取り除くにはどうすればよいですか?

18
A.B.

明確にするために、タスクを実行すると、VS Codeに常に新しい統合ターミナルが作成されます。それを回避する方法はありません。最も重要なことは、新しく作成された統合端末の代わりに元の端末が表示されることです。 (元の端末を公開してほしい)

@Gregory Cosmo Haunのソリューションは、「ターミナルはタスクによって再利用されます。任意のキーを押して閉じる」というメッセージを抑制します。ただし、通常の端末ではなく、新しい統合端末が表示されます。 (そのため、その端末を閉じて元の端末を表示するには、「任意のキー」を押す必要があります)

より良い解決策は、"reveal": "silent"を設定することです。これにより、新しい統合ターミナルが作成されますが、タスクの実行中にエラーが発生しない限り、ターミナルは表示されません。また、タスクを実行する前に端末がクリアされるように"clear": true(オプション)を設定します。 "showReuseMessage": false(オプション)は意図的に省略していますが、追加することもできます。プロンプトが抑制されているかどうかは誰が気にしますか?最も重要なことは、新しく作成されたターミナルが表示されないため、閉じるために「キーを押す」必要がないことです。

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

ところで、"reveal": "never"を設定することもできますが、通常、タスクの実行に問題がある場合はエラーメッセージを表示する必要があります。

私の意見では、これは可能な最良の解決策です。はい、タスクを実行すると常に新しい統合端末が作成されますが、少なくともエラーは発生しないので表示されないため、キーを押して閉じることなく安全に無視できます。

6
kimbaudi

showReuseMessageという新しいプレゼンテーションオプションがあります。以下をタスク定義に追加します。

"presentation": {
     "showReuseMessage": false
}
5

1つの可能性は、「タスク」に次のコマンドを追加することです。

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

なので

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

これは問題を完全に解決するわけではありませんが、少なくともすべての結果を次々とパネルに積み上げるわけではありません。

https://github.com/Microsoft/vscode/issues/35642 に触発されました

1
cerebrou

別の解決策は、出力ウィンドウをauto-focusに設定することです。

これをタスク定義に追加します。

    "presentation": {
        "focus": true
    }

そうすれば、キーを1回押すだけでコンパイラの出力を閉じることができるので、それほど煩わしくありません。

これの利点は、タスクの出力が表示されるため、エラーや警告があったかどうかを確認できることです。

1
rustyx