【问题标题】:How do I automatically clear VS Code terminal when starting a build?开始构建时如何自动清除 VS Code 终端?
【发布时间】:2018-02-23 13:34:55
【问题描述】:

我按 Ctrl+Shift+BVisual Studio Code 中开始构建(它被配置为只需运行 GNU Make),构建工具的输出就会写入终端窗口。

但是,它被附加到先前构建的输出中,这令人困惑。

如何配置 VS Code 以在开始新构建之前清除终端窗口?

【问题讨论】:

  • 使用新项目而不是新文件进行构建
  • Visual Studio 默认构建项目文件而不是普通文件。所以创建一个新项目。请在此处按照这些步骤操作。 stackoverflow.com/questions/19684190/…
  • Visual Studio 代码不是 Visual Studio。
  • 对不起,先生,我以为是 Visual Studio,但你可以使用命令行
  • @Denis 例如,参见stackoverflow.com/a/57470981/836330

标签: visual-studio-code vscode-tasks


【解决方案1】:

2018 年 11 月更新

this commit(以及一些后续跟进)开始,您现在可以向您的任务添加一个clear 演示选项,以便在每个任务运行之前清除终端。

工作示例(新克隆+构建):

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "[gcc] Build",
            "type": "shell",
            "command": "g++",
            "args": [
                "source.h",
                "-Wall",
                "-o",
                "a.out"
            ],
            "presentation": {
                "clear": true                        // <-- this line
            }
        }
    ]
}

(注意:链接的提交差异有一个名为 clearBeforeExecuting 的键,但它显然已更改为 clear)。

在此之前,我在我的路径上创建了一个 clear_g++ 脚本:

#!/bin/bash
clear
exec g++ $*

并将我的 commandg++ 更改为 clear_g++

因为我喜欢this approach 的想法,但最终没有成功。

【讨论】:

【解决方案2】:

您可以从设置菜单更改(至少从 1.30.2 及更高版本开始)...

在 Mac 上,只需点击代码 > 首选项 > 设置。

然后只需搜索“clear”并选中 Clear Previous Output。

【讨论】:

  • 不存在于我的 VS 代码中;好像你已经安装了一个“代码运行器”扩展。
【解决方案3】:

我试图找到解决方案,但找不到。我尝试的简单技巧是在新标签中打开新版本。将此presentation 密钥添加到tasks.json 中的任务中

 "presentation": {
                "echo": true,
                "reveal": "never",
                "focus": false,
                "panel": "new"
            }

panel:new 将在新终端中打开。

【讨论】:

  • 不完美,但比默认的要好。
  • @clankill3r 为什么不完美?在构建之前打开新终端和清除终端有什么区别(从实际角度来看)?
  • @FabioTurati 我想每个新构建都会使用这种方法创建一个新任务,而不是仅仅清空现有任务的输出,这有点令人沮丧。这绝对比附加到现有输出的底部但不向下滚动到新生成的输出要好。
  • @FabioTurati 事实上,现在我在终端面板中的任务数量越来越多。我想这至少会消耗内存。并且分散注意力。
  • 未来读者请注意:在每个任务运行之前清除终端的选项现在已被接受和合并(请参阅this),但可能需要一些时间出现在稳定版本中的选项。
【解决方案4】:

添加此用户设置以在单击运行时清除 OUTPUT 选项卡 (▶)

"code-runner.clearPreviousOutput": true,

这与清除终端不同,但它可能是某人想要的。

[编辑] 这需要 Runner 扩展,我建议直接在 VS Code 中测试/运行脚本。

【讨论】:

  • "code-runner.clearPreviousOutput" - 未知的配置设置。
  • 我正在使用 VS Code 1.26.1。那条线肯定在我的用户设置中。它有效。
  • 好的。看起来我安装了 Runner 扩展。该设置属于扩展而不是核心。似乎是一个很好的扩展。
  • 很好,你检查过了。这应该是答案的一部分。
  • 您是否安装了代码运行器扩展? Code Runner 确实在终端窗口“中”运行您的代码,它运行一个不放置输出选项卡的进程。一旦你安装了代码运行器,你应该能够添加 clearPreviousOutput 设置
【解决方案5】:

如果您自己控制构建任务,则很容易在前面添加clear 命令:

"tasks": [
    {
        "label": "build",
        "type": "shell",
        "command": "clear && make",
....

【讨论】:

  • 请注意,这在 linux 中运行良好,这对我有帮助。
  • 我不确定它是否还能在 linux 上运行:/bin/bash: clear &amp;&amp; g++: command not found // The terminal process terminated with exit code: 127
  • 这假定 PATH 包含一个 clear 和一个 make 命令。我认为当从确实存在命令的 shell 启动时,它在这些系统上工作。
【解决方案6】:

在 Visual Studio Code 1.52.1 版本中,终端的默认清除是通过 clear: true 属性实现的(=控制在执行任务之前是否清除终端。)。不幸的是,它不起作用,我仍然看到终端显示旧消息。我必须在终端中手动输入“清除”才能完全清除。

"presentation": {
                "echo": true,
                "reveal": "always",
                "focus": false,
                "panel": "shared",
                "showReuseMessage": true,
                "clear": true
            }

这是在 OSX 下的 tasks.json 中添加的:

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: clang++ build active file",
            "command": "/usr/bin/clang++",
            "args": [
                "-std=c++11",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "compiler: /usr/bin/clang++",
            "presentation": {
                "echo": true,
                "reveal": "always",
                "focus": false,
                "panel": "shared",
                "showReuseMessage": true,
                "clear": true
            }
        }
    ]
}

【讨论】:

    【解决方案7】:

    更新视觉代码 1.54 +

    点击运行时清理终端。

    1. 安装代码运行器扩展。
    2. 设置>搜索“清除”->勾选“清除上一个输出”

    【讨论】:

      【解决方案8】:

      新的 Visual Studio 代码 1.56。这适用于 Windows。

      您只需转到首选项:打开设置(UI),搜索“清除”并检查选项如下:

      这将确保终端在每次运行时都保持清晰,从而确保一次只有一个文件运行可见。

      【讨论】:

      • 嗯,我在运行 1.57 的 Mac 上,您的展示和我遵循的内容不起作用。您是否正在运行单独的扩展程序?
      • 我在 Windows 笔记本电脑上执行此操作。你在 mac 的 vs 代码中没有得到这个选项“清除”?
      • 我确实清楚并勾选了框。运行代码时,它运行一次,如果我再次运行它,它不会清除以前的输出。我遇到了以下情况。 // 在集成或外部终端中开始新的调试会话之前,清除终端。 “debug.terminal.clearBeforeReusing”:假,
      • 在我的选择中,我每次都是手动执行该步骤。所以你的选择更好。将对其进行测试。
      • 如果您添加以下内容,它几乎可以清理或呈现人们询问的方式。导入操作系统 os.system("clear")
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-26
      • 2019-10-30
      • 2020-12-31
      相关资源
      最近更新 更多