现在,在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 属性来定义应显示任务输出的位置。
答案 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中,而且在所有终端中拆分终端。
在Mac上开始使用tmux的最简单方法是使用Homebrew软件包管理器。
/ usr / bin / ruby -e“ $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
简单安装tmux
tmux -V
Ubuntu的安装与Mac类似,除了我们将使用预安装的apt-get软件包管理器。注意,我们将不得不以sudo的身份运行apt-get。这是因为用户帐户没有足够的特权来安装tmux,因此sudo允许我们以超级用户身份进行安装。
sudo apt-get更新
sudo apt-get install tmux
tmux -V
使用tmux
命令开始新的会话,然后按ctrl / cmd + b和%进行垂直拆分,或按“进行水平拆分。
答案 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
使用新的拆分还是重复使用的拆分)
注意:在此示例中,根据对-l
,terminal.integrated.shell*
和terminal.integrated.automationShell*
-this的设置,您可能不需要terminal.integrated.inheritEnv
选项}问题讨论了设置shell环境所涉及的内容。