在VSCode中运行任务时如何拆分终端?

时间:2018-09-19 16:57:39

标签: visual-studio-code

现在,在Visual Studio Code中,您可以将集成终端一分为二。我也在使用VSCode的任务功能,以始终同时运行两个任务。如何做到这一点,以便在运行任务时它将自动拆分当前终端,并使用新的终端?

基本上我想打开VSCode,它应该像正常一样自动打开集成终端,然后我可以运行两个任务,最后将终端分成三个部分,如下所示:

------------------------------------------------------
| default terminal   | Task 1       | Task 2         |
------------------------------------------------------

编辑(已解决): VSCode已更新,现在允许:D https://code.visualstudio.com/updates/v1_31#_task-output-support-split-terminals

  

您现在可以配置任务以在拆分的终端面板中显示输出,而无需创建新的面板。任务配置可以使用演示文稿部分中的 group 属性来定义应显示任务输出的位置。

5 个答案:

答案 0 :(得分:4)

January 2019更新中添加了对此的直接支持。

为每个任务的presentation.group属性设置相同的名称将导致任务显示在拆分终端中。从VS代码documentation

:控制是否使用拆分窗格在特定的终端组中执行任务。同一组中的任务(由字符串值指定)将使用拆分终端而不是新的终端面板显示。

答案 1 :(得分:2)

在创建任务时,请确保将presentation.reveal选项设置为always,并将presentation.panel选项设置为new。这样,输出就会始终显示,并在每次运行的任务上创建一个终端

示例:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Run tests",
            "type": "shell",
            "command": "./scripts/test.sh",
            "windows": {
                "command": ".\\scripts\\test.cmd"
            },
            "group": "test",
            "presentation": {
                "reveal": "always",
                "panel": "new"
            }
        }
    ]
}

更多信息,位于:Tasks in Visual Studio Code

编辑:由于您希望将新任务放入拆分终端,因此此信息可能会有所帮助。我认为不可能这样做:Launch task directly into split terminal

答案 2 :(得分:1)

您可以使用tmux不仅在vscode中,而且在所有终端中拆分终端。

MacOS安装

在Mac上开始使用tmux的最简单方法是使用Homebrew软件包管理器。

  1. 如果尚未安装Homebrew,请打开“终端”或iTerm,然后粘贴以下命令:

/ usr / bin / ruby​​ -e“ $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

  1. 一旦安装了Homebrew,就可以使用brew安装tmux:

简单安装tmux

  1. 通过检查版本确认安装(请注意大写的V):

tmux -V

Ubuntu / Debian Linux安装

Ubuntu的安装与Mac类似,除了我们将使用预安装的apt-get软件包管理器。注意,我们将不得不以sudo的身份运行apt-get。这是因为用户帐户没有足够的特权来安装tmux,因此sudo允许我们以超级用户身份进行安装。

  1. 更新apt-get以确保我们处于最新和最伟大的状态:

sudo apt-get更新

  1. 安装tmux:

sudo apt-get install tmux

  1. 通过检查版本来确认已安装:

tmux -V

安装后

使用tmux命令开始新的会话,然后按ctrl / cmd + b和%进行垂直拆分,或按“进行水平拆分。

参考

How to install tmux

Tmux cheatsheet

答案 3 :(得分:0)

在较新版本的VsCode中,您只需将 终端通过快捷方式: Ctrl + Shift + 5

  

注意:已在1.36.1或更高版本上测试

答案 4 :(得分:0)

以下方法应该起作用:

{
    "type": "process",
    "label": "terminal",
    "command": "/bin/bash",  // <-- your shell here
    "args": [
        "-l"  // login shell for bash
    ],
    "problemMatcher": [],
    "presentation": {
        "echo": false,  // silence "Executing task ..."
        "focus": true,
        "group": "sxs",  // some arbitrary name for the group
        "panel": "dedicated"
    },
    "runOptions": {
        "runOn": "folderOpen"
    }
}

在这里,当我在vscode中打开文件夹时,我正在自动启动终端(并将焦点放在该终端上),并且共享相同presentation.group的其他任务会在拆分终端中放入运行(根据它们的presentation.panel使用新的拆分还是重复使用的拆分)

注意:在此示例中,根据对-lterminal.integrated.shell*terminal.integrated.automationShell*-this的设置,您可能不需要terminal.integrated.inheritEnv选项}问题讨论了设置shell环境所涉及的内容。