web-dev-qa-db-fra.com

Comment se débarrasser de "Le terminal sera réutilisé par des tâches, appuyez sur n'importe quelle touche pour le fermer." comportement?

Lors de l'exécution d'une tâche (construction de cargaison dans ce cas), ce qui suit apparaît dans le terminal VSCode:

> Executing task: cargo build <

(output of the task here)

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

De façon ennuyeuse, cela me fait sortir du terminal normal, puis je dois acquérir le focus de la fenêtre du terminal et appuyer sur une touche pour revenir. Et quand je le fais, la sortie de la construction de cargaison disparaît.

Comment puis-je arrêter ce comportement?

Comment supprimer les première et dernière lignes de texte?

18
A.B.

Pour être clair, l'exécution d'une tâche créera toujours un nouveau terminal intégré dans VS Code. Il n'y a pas de chemin aux alentours. La chose la plus importante est que le terminal d'origine soit affiché au lieu du terminal intégré nouvellement créé. (Nous voulons que le terminal d'origine soit révélé.)

La solution de @Gregory Cosmo Haun supprimera le message "Le terminal sera réutilisé par les tâches, appuyez sur n'importe quelle touche pour le fermer". Cependant, il révèle toujours le nouveau terminal intégré au lieu du terminal normal. (vous devez donc toujours appuyer sur "n'importe quelle touche" pour fermer ce terminal et révéler le terminal d'origine)

Une meilleure solution serait de définir "reveal": "silent", qui créera toujours un nouveau terminal intégré, mais ne le révélera pas sauf en cas d'erreur lors de l'exécution de votre tâche. J'ai également défini "clear": true (facultatif) pour que le terminal soit effacé avant d'exécuter la tâche. J'omet délibérément "showReuseMessage": false (qui est facultatif) mais vous pouvez l'ajouter. Qui se soucie si l'invite est supprimée ou non? La chose la plus importante est que le terminal nouvellement créé n'est pas révélé, donc je n'ai pas à "appuyer sur une touche" pour le fermer.

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

BTW, vous pouvez également définir "reveal": "never", mais vous voudriez normalement voir le message d'erreur s'il y a un problème avec l'exécution de votre tâche.

À mon avis, c'est la meilleure solution possible. Oui, un nouveau terminal intégré sera toujours créé lors de l'exécution d'une tâche, mais au moins il ne sera pas révélé (sauf en cas d'erreur) et vous pouvez l'ignorer en toute sécurité sans avoir à appuyer sur une touche pour la fermer.

6
kimbaudi

Il existe une nouvelle option de présentation appelée showReuseMessage. Ajoutez ce qui suit à votre définition de tâche.

"presentation": {
     "showReuseMessage": false
}
5
Gregory Cosmo Haun

Une possibilité consiste à ajouter la commande suivante aux "tâches":

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

comme

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

Cela ne résout pas complètement le problème mais au moins n'empile pas tous les résultats les uns après les autres dans le panneau.

Inspiré par https://github.com/Microsoft/vscode/issues/35642

1
cerebrou

Une autre solution consiste à définir la fenêtre de sortie sur auto-focus.

Ajoutez ceci à la définition de tâche:

    "presentation": {
        "focus": true
    }

Ensuite, ce n'est plus si ennuyeux car vous pouvez ignorer la sortie du compilateur en appuyant sur une seule touche.

L'avantage est que la sortie de la tâche est visible, vous pouvez donc voir s'il y a eu des erreurs ou des avertissements.

1
rustyx