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

问题描述 投票:44回答:9

我们可以在VS Code中添加多个不同的终端吗?我计划添加以下三个终端并与所有这些一起工作

  1. Windows命令提示符
  2. 电源外壳
  3. Git Bash

我知道我需要在Preferences => Setting中添加以下命令

 // // 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中添加以上三个命令以及当我点击+时,不同的终端应该打开,我想在不改变首选项的情况下使用这些终端。是否可以在VS Code中使用?

visual-studio-code windows-7-x64
9个回答
72
投票

有一种方法可以通过安装扩展程序来实现这些步骤:

  1. 找到一个名为Shell launcher的扩展,并安装它。如果需要,或在完成所有步骤后重新加载VS代码。
  2. 转到Files --> Preferences --> Settings,这将打开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用于LinuxshellLauncher.shells.osx用于macOS

  1. 转到Files --> Preferences --> Keyboard Shortcuts,然后在文件顶部找到打开keybindings.json文件。插入此:

码:

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

PS:你可以使用任何组合键,但在这里我为自己选择了Ctrl + Alt +(反引号)。

您可以重新加载VS代码并单击已分配的组合键,这样您就可以选择要使用的组合终端。

enter image description here

有关详细信息,请查看官方网站:https://marketplace.visualstudio.com/items?itemName=Tyriar.shell-launcher

请享用!


47
投票

即使问题是在去年被问到并且答案被接受但我仍然觉得回答这个问题,因为我没有找到任何简单,合适和完整的答案,而作为一个开发我需要多个终端方便点击如下: -

enter image description here

我不打扰他们的路径,添加另一个扩展VS代码已经能够或重新加载VS Shell等,并手动插入和设置设置文件。

我发现这个问题被多次询问,并且几乎全部手动设置写入一些设置等,或者有时只选择获得单一类型的终端。 @Pawan的答案有点接近,但是这个解决方案最终落到单个终端,进入交换机终端的命令设置,这个将适用于git或任何其他终端。

如果您安装的工具在power-shell和git等命令行上工作,并且在Windows中有默认的cmd提示符,那么请按照快速的三个步骤立即获取所有终端,然后通过单击切换到任何人。

  1. 打开终端,它应该是可见的(使用ctrl +`或从菜单View-> Integrated Terminal)
  2. 打开命令搜索(使用Ctrl + Shift + P或从菜单View-> Command Palette ...)
  3. 在命令框中键入“终端:选择默认外壳”以从下拉列表中选择此选项。 enter image description here
  4. 当您选择此选项时,路径中的所有可用命令将在下面列出,如下面的enter image description here
  5. 只需单击要添加的任何一个,即可从命令列表中快速访问。
  6. 最后,在终端窗口中,只需单击终端列表旁边的+号,如下所示: - enter image description here

现在,在执行步骤6到列表之后添加在步骤5中选择的终端而不删除先前的终端。

  1. 重复步骤3-6,将任何其他终端添加到命令列表。

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


16
投票

ctrl + shift + `快捷方式,或按十字标记运行新终端,如果默认模式为powershell,则键入bash;如果默认模式为bash,则键入powershell。在这里,您的终端已切换。


4
投票

目前,VS 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。


3
投票

这可以通过在末尾添加不同的密钥来完成。只需将您的示例更改为:

// // 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,只会显示第一个终端。我不得不重新打开设置并保存一次以再次获得两个终端。如果有更好的解决方案可以发布。


2
投票

不,也许在将来。见https://github.com/Microsoft/vscode/issues/7504

如果你使用bash,你可以使用tmux来实现类似的东西,如上面链接的问题所述。


2
投票

在终端选项卡中,有一个分割终端按钮。奇迹般有效


0
投票

对于Windows终端上的WSL Ubuntu:

文件 - >首选项 - >设置 - >单击右上角的代码图标

输入以下内容:

{
    "terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\wsl.exe",
    "git.enableSmartCommit": true
}

0
投票

要打开multiple终端,请检查相同的屏幕截图(在visual studio代码的右下方,它们将是一个下拉列表,在它之后,它们是+(加号)图标。按下它时,新终端将打开。 )。

© www.soinside.com 2019 - 2024. All rights reserved.