如何在Visual Studio Code中添加多个终端?

109
我们可以在Visual Studio Code中添加多个不同的终端吗?
我计划添加以下三个终端,并与所有这些一起使用:
  1. Windows命令提示符
  2. PowerShell
  3. Git Bash
我知道我需要在“首选项”→“设置”中添加以下命令:
 // // 64-bit cmd if available, otherwise 32-bit
 "terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\cmd.exe",
// // 64-bit PowerShell if available, otherwise 32-bit
 "terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\WindowsPowerShell\\v1.0\\powershell.exe",
// // Git Bash
 "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",

我想把以上三个命令添加到setting.json中。

Enter image description here

当我点击+时,应该打开不同的终端,并且我希望在不更改首选项的情况下与这些终端一起工作。 在Visual Studio Code中是否可能实现这个功能?

1
如果您在 PowerShell 终端中键入此命令,它将启动 Git Bash:& "c:\Program Files\git\bin\bash.exe" - Davos
2
自从https://code.visualstudio.com/updates/v1_35以来,您现在可以更轻松地完成此操作,请参见我完全在页面底部的答案。我通过谷歌进入此处,安装了扩展,然后一直阅读下去,注意到了Neil的评论,然后前往2019年5月的发布说明,并将其添加到此处作为信息提醒。 - edelwater
2022年最合适的答案是https://dev59.com/M1cQ5IYBdhLWcg3wCvY4#69748852。 - brunoff
12个回答

119
有一种方法可以通过安装扩展来实现这个目标,具体步骤如下:
  1. 找到一个名为“Shell launcher”的扩展并安装它,或者你可以在这里找到它。如果需要的话,重新加载Visual Studio Code,或者在完成所有步骤后再重新加载。

  2. 进入“文件”→“首选项”→“设置”,这将打开“settings.json”文件,然后你可以插入以下内容(你可以根据自己的需求进行编辑):

代码:

"shellLauncher.shells.windows": [
    {
        "shell": "C:\\Windows\\<sysnative>\\cmd.exe",
        "label": "cmd"
    },
    {
        "shell": "C:\\Windows\\<sysnative>\\WindowsPowerShell\\v1.0\\powershell.exe",
        "label": "PowerShell"
    },
    {
        "shell": "C:\\Program Files\\Git\\bin\\bash.exe",
        "label": "Git bash"
    },
    {
        "shell": "C:\\Windows\\<sysnative>\\bash.exe",
        "label": "WSL Bash"
    }
]

PS:你可以使用shellLauncher.shells.linux来适用于Linux,或者使用shellLauncher.shells.osx来适用于macOS

  1. 前往文件首选项键盘快捷方式,然后在右上角找到{}图标以打开keybindings.json文件。插入以下内容:

代码:

[
    { "key": "ctrl+alt+`", "command": "shellLauncher.launch" }
]

在搜索栏中键入shelllauncher。然后可以看到Shell Launcher: Launch命令。选择并使用任意喜欢的按键绑定。例如,我选择了Ctrl + Alt + `(反引号)。

您可以重新加载Visual Studio Code并点击您分配的组合键,这将为您提供选择要使用的集成终端的选项。

Enter image description here

请查看官方网站获取更多详细信息:Shell launcher

10
这不起作用。我想添加多个terminal.integrated.shell.windows而不是Shell launcher - MANISH KUMAR CHOUDHARY
2
我认为现在可能无法做到,但正如Ben所指出的那样,也许将来可以。这只是一个解决方法,通过安装一个带有一些调整的扩展程序,您可以同时打开cmd、powershell或bash,以实现多个终端的目的。 - ian0411
2
这个扩展真的很酷,实际上正是我需要的,因为有时我需要一个bash和多个PS。 太棒了! - Raffaeu
2
非常好!使用这种方法为Cmder添加了一个shell。 - Steve L.
5
对于那些需要复制/粘贴设置的人。如果您在Windows计算机上,请将路径中的 sysnative 替换为 System32 - Andrew
显示剩余11条评论

76
这里有一个简单、合适且完整的答案,作为一个开发者,我需要像下面这样一键方便地拥有多个终端。

Enter image description here

而且我不会为他们的路径烦恼,要么为Visual Studio Code增加另一个扩展,要么重新加载VS Shell等等,并手动插入和设置设置文件。

我发现这个问题被问了很多次,几乎所有人最终都选择手动设置写一些设置,等等,或者有时只选择获取单个类型的终端。Pawan的回答(链接1)有点接近,但是那个解决方案最终还是只有一个终端,需要转到命令设置以切换终端,而这个解决方案适用于Git或任何其他终端。

如果您已经安装了像PowerShell和Git这样的命令行工具,并且还有Windows默认的cmd提示符,那么以下快速三个步骤可以一次获取所有终端,并通过单击切换到任何一个。

  1. 打开终端。它应该是可见的(使用 Ctrl + `(反引号)或从菜单 视图集成终端

  2. 打开命令搜索(使用 Ctrl + Shift + P 或从菜单 视图命令面板...

  3. 在命令框中,输入 "Terminal: Select Default Shell" 以从下拉列表中选择此选项。

    Enter image description here

  4. 当您选择此选项时,所有可用的命令将显示在下方,如下所示:

    Enter image description here

  5. 只需点击您想要从命令列表中快速访问的任何一个。

  6. 最后,在终端窗口中,只需点击终端列表旁边的 + 符号,如下所示:

    Enter image description here

    在执行步骤 6 后,步骤 5 中选择的终端将被添加到列表中,而之前的终端不会被移除。

  7. 重复步骤 3-6 来添加其他终端到命令列表中。

要使用特定的终端,只需在终端窗口的终端列表中选择所需的终端即可。

2
这就是我一直在寻找的答案,尽管我是偶然发现的。 :) - Legend
26
每次添加新视图时,这种方法都会覆盖默认终端。如果 Visual Studio Code 用于其他需要保持默认终端不变的目的,则不建议使用此方法。 - Fabio
1
谢谢...正是我在寻找的。 - Tiki
3
有没有办法让设置保留下来?看起来在关闭浏览器后,设置就会消失。 - Monkey
2
谢谢。我喜欢原生解决方案。 - Greeso
显示剩余2条评论

27
按下 Ctrl + Shift + ` 快捷键,或者点击一个十字标志来运行一个新的终端。然后,如果你的默认模式是 PowerShell,输入 bash;如果你的默认模式是 Bash,则输入 powershell。这样你就切换到了终端界面。

1
这个确实很好用,但它在VSCode会话之间不会保留,因为它不会对设置进行任何更改。 就我个人而言,我喜欢这个功能,因为只需要按几个键,而且我并不总是需要多个终端类型。 - torpy
6
到目前为止,这是最好的解决方案。 - Pakk
我来这里就是为了找到这个答案,谢谢!但愿将鼠标悬停在“+”上会显示键盘快捷方式! - dossy

7
目前,Visual Studio Code只支持一次定义一个可用终端作为默认终端,并且无法添加多个shell终端。
如果您不想安装@ian0411建议的"Shell Launcher"插件,那么这里有一个快速更改/选择默认终端的方法。
按下Ctrl + Shift + P打开命令面板
输入"Terminal: Select Default Shell"并按下Enter。您将被提示选择Git Bash、PowerShell或Cmd,如下所示:

Option to change preferred terminal shell

注意:这将更改默认的shell终端,但是每当您需要使用其他终端时更改它并不会造成任何损害。
顺便说一下,如果您只需要在Cmd和PowerShell之间切换,那么您可以在已经打开的终端中输入cmd或powershell来切换到所需的终端。但对于Git Bash则不适用。

5

我没有在之前的回答中看到这个,但我已阅读了所有的回答。我认为这是目前支持的最佳方法。我相信,就像我自己一样,楼主只是想打开Visual Studio Code,并希望在终端窗口中获得一个可供选择的选项列表。

是的,你可以打开命令“Terminal: Select Default Shell”,并通过循环来添加各种类型的终端...

Yes, you can open the command, "Terminal: Select Default Shell" and loop through that to add various types of terminals...

接下来是:

Enter image description here

我不知道这个选项是什么时候添加到下拉菜单中的,但是看!没有必要先查找命令。我觉得这比其他任何答案都要顺畅,但是在离开会话之前,它仍然会让你的默认终端被你上次选择的内容覆盖,这真是令人烦恼。
在这里,我们可以更容易地打开“选择默认Shell”。它应该支持“选择新的Shell”。简单吧,你可能会想。希望有人很快添加这个功能,或者我有时间来贡献。

Here, we can more easily open the "Select Default Shell" - it should support "Select New Shell"


1
选择一个不同类型的新外壳也是我一直在寻找的。 - Zach

4
我相当确定这些是旧式的settings.json,并且在2021年的Visual Studio Code中不起作用。新样式如下:
...
"terminal.integrated.profiles.windows":
{   "Bash":
    {    "path": ["C:\\Programs\\Git\\bin\\bash.exe"],
         "icon": "terminal-bash",
    },
    "Command Prompt":
    {   "path": ["${env:windir}\\System32\\cmd.exe"],
        "args": [],
        "icon": "terminal-cmd"
    },
    "PowerShell":
    {   "path":  ["C:\\Programs\\PowerShell\\pwsh.exe"],
        "source": "PowerShell",
        "args": [],
        "icon": "terminal-powershell"
    },
},
"terminal.integrated.defaultProfile.windows": "Bash"
...

这将使您能够访问Command和PowerShell,并将Bash设置为默认shell(我的首选)。如果您想启动一个独立的应用程序,如Git Bash,您将需要其他东西。


1
我认为现在这是2022年最合适的答案。 - brunoff

3
版本1.35开始,现在你可以:
  1. 直接从终端上方的下拉菜单中选择“选择默认外壳”
  2. 选择你喜欢的外壳
  3. 点击+
  4. 完成

(同样适用于打开分屏:在此之前,执行步骤1 + 2,然后点击分屏按钮。)

(虽然它会覆盖默认设置,但如果这是你的流程,那就不再重要了。)


2

可以通过在末尾添加不同的键来实现。只需将您的示例更改为:

// // 64-bit cmd if available, otherwise 32-bit
 "terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\cmd.exe",
// // 64-bit PowerShell if available, otherwise 32-bit
 "terminal.integrated.shell.windows2": "C:\\Windows\\sysnative\\WindowsPowerShell\\v1.0\\powershell.exe",
// // Git Bash
 "terminal.integrated.shell.windows3": "C:\\Program Files\\Git\\bin\\bash.exe",

请注意,键...shell.windows已更改为...shell.windows2...shell.windows3
后续发现:我注意到一旦重新启动IDE,只有第一个终端被显示。我必须重新打开设置并保存才能再次获得两个终端。如果有更好的解决方案,我将发布。

5
我已将这些设置添加到用户设置(UserSetting)中,但第二个和第三个shell上出现了警告,其中警告消息为“未知的配置设置”。 - Emad Armoun

1
在终端选项卡中,有一个分割终端按钮。它的效果非常好。

1
这不是被要求的内容。 - Guillermo Prandi

1
打开多个终端,请查看屏幕截图(在 Visual Studio Code 的右下角会有一个下拉菜单,紧随其后是+(加号)图标。按下它,将打开新的终端)。

截图实际上无法阅读。你能先调整窗口大小等,然后重新提交吗?(但请不要包含"编辑:"、"更新:"或类似的内容——回答应该看起来像是今天写的。) - Peter Mortensen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接