在 VS Code 中使用 Git Bash 终端 - 如何强制它在内部打开

Posted

技术标签:

【中文标题】在 VS Code 中使用 Git Bash 终端 - 如何强制它在内部打开【英文标题】:Using Git Bash terminal in VS Code - how to force it to open internally 【发布时间】:2019-09-02 00:48:48 【问题描述】:

重复:I asked this on SuperUser without answer

使用:

编辑器:VS 代码 终端:Git Bash

VS Code 提供了一个快捷键 Ctrl+Shift+C 在外部打开它,并提供一个快捷键 Ctrl+`(或者在我的例子中是 Ctrl+F1)在内部打开它。

在我的例子中,它使用快捷方式以及菜单 View->Terminal 从外部打开它。

据我所知,我将 Google 颠倒过来以找到此解决方案。

我已经从 git-scm.com 重新安装了 Git。

我检查了我的 VS Code 设置 (Code\User\settings.json) 以找到线索,如果我不小心设置为自己强制外部打开。

我知道我不应该粘贴整个文件,但也许你会发现 settings.json 中的问题所在:


  // Chosen Terminal
  "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
  // Prevent losing aliases, colorization etc. for the Git bash terminal
  // "terminal.integrated.shellArgs.windows": [
  //     "--login",
  //     "--init-file",
  //     "C:\\Program Files\\Git\\etc\\profile"
  // ],
  // Windows Terminal
  "terminal.external.windowsExec": "C:\\Program Files\\Git\\bin\\bash.exe",
  // Chosen Theme Color and Color Customization
  "workbench.colorTheme": "Monokai",
  "workbench.colorCustomizations": 
    "[Monokai]": 
      // "statusBar.background": "#666666",
      // "panel.background": "#555555",
      // "sideBar.background": "#444444",
      "tab.activeBackground": "#999999",
      "tab.activeForeground": "#333333"
    
  ,
  // Emmet Customization
  "emmet.triggerExpansionOnTab": true,
  // Editor Customization
  "editor.fontSize": 14,
  "editor.wordWrap": "on",
  "editor.codeActionsOnSave": ,
  "editor.tabSize": 2,
  // php Tooltip Suggestions
  "php.suggest.basic": false,
  "php.validate.executablePath": "C:\\xampp\\php\\php.exe", //for linting
  "php.validate.run": "onSave", //change to onType if need be
  "explorer.confirmDelete": false,
  "beautify.language": 
    "js": 
      "type": [
        "javascript",
        "json",
        "jsonc"/*,
        "html"*/
      ],
      "filename": [
        ".jshintrc",
        ".jsbeautifyrc"
      ]
    ,
    "css": [
      "css",
      "scss"
    ],
    "html": [
      "htm",
      "html"
    ]
  ,
  "beautify.config": 
    "indent_size": 2,
    "indent_char": " ",
    "css": 
      "indent_size": 2
    
  ,
  // Git costumization
  "window.zoomLevel": 0,
  "workbench.colorCustomizations": 
    "gitDecoration.addedResourceForeground": "#f45342",
    "gitDecoration.modifiedResourceForeground": "#3888d8"
  ,
  "workbench.settings.useSplitJSON": true,
  "files.trimTrailingWhitespace": true,
  "minify.minifyExistingOnSave": true

如果我使用 Ctrl+Shift+C 快捷键,假设在两个不同的项目上,它会像预期的那样打开两个外部终端。

如果我使用 Ctrl+F1(默认 Ctrl+`)快捷方式,它希望在内部打开它们,因此 VS Code 窗口的底部如下所示:

它仍然在外部打开它们:

谁能提供一些见解?

【问题讨论】:

Ctrl+F1 是否也用于键盘快捷键中的其他命令? 没有。我刚刚检查了 User Keybindings 以及 Default Keybindings 并且这个 "key": "ctrl+f1", "command": "workbench.action.terminal.toggleTerminal" 是唯一的出现。由于斯洛文尼亚语键盘,将其设置为ctrl+f1。默认快捷键为ctrl+"backtick",但反引号组合键为AltGr+7Ctrl+Alt+7 【参考方案1】:

似乎将"terminal.external.windowsExec": "C:\\Program Files\\Git\\bin\\bash.exe" 添加到“设置”是旧方法,无法按预期工作。

从设置 JSON 中删除所有与 bash 相关的行(检查用户、工作区和文件夹设置以确保)并保存文件。

然后只需打开命令面板(Ctrl + Shift + P)并输入

Select Default Shell

然后从那里选择 bash。

现在您所要做的就是重新启动 VS Code,终端将按预期运行。

对于不在您的 %PATH% 中的 shell,请参阅其他答案。

见the complete Visual Studio Code shell reference。

【讨论】:

【参考方案2】:

应该已经配置了预先存在的终端配置文件,因此应该像添加一样简单:

"terminal.integrated.defaultProfile.windows": "Git Bash",

到你的 settings.json

【讨论】:

以上是关于在 VS Code 中使用 Git Bash 终端 - 如何强制它在内部打开的主要内容,如果未能解决你的问题,请参考以下文章

git bash的VS Code启动位置

如何在 Ubuntu on Windows (WSL) 上为我的 VS Code 终端使用 Bash?

为啥在超级终端中工作的永久别名在 vs-code bash 终端中不起作用?

vscode配置git bash

在 VS Code 中启动 live-server 后在 Bash 终端中输入 Cannon

终端 Git 跟踪与 VS Code git 跟踪不同步