Visual Studio Code в Windows по умолчанию использует PowerShell в качестве интегрированного терминала. Если вы хотите использовать Bash из Visual Studio Code, какие шаги необходимо выполнить?

Ответы (26)

  1. Установите Git из https://git-scm.com/download/win

    .
  2. Откройте Visual Studio Code и нажмите и удерживайте Ctrl + `, чтобы открыть терминал.

    Введите описание изображения здесь

  3. Откройте палитру команд, используя Ctrl + Shift + P.

  4. Тип - Выбор профиля по умолчанию

  5. Выберите Git Bash из предложенных вариантов

  6. Нажмите на значок + в окне терминала

  7. Новый терминал теперь будет терминалом Git Bash. Дайте ему несколько секунд, чтобы загрузить Git Bash

    Введите описание изображения здесь

  8. Вы теперь можете переключаться между различными терминалами также из выпадающего списка в терминале.

    Введите описание изображения здесь


You no longer need to type in bash.exe path manually. This answer is deprecated. Now you can switch to bash directly, if you have git installed in the default path. If you installed git to a different path you need to use the below solution.


Install Git from https://git-scm.com/download/win.

Then open Visual Studio Code and open the command palette using Ctrl + Shift + P. Then type "open user setting", and then select "Open User Settings" from the drop down menu.

Visual Studio Code command palate

Then this tab will open up with default settings on left and your settings on the right:

enter image description here

Now copy this line of code to your own settings page (the pane on the right hand side) and save - "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"

Note: "C:\\Program Files\Git\bin\bash.exe" is the path where the bash.exe file is located from the Git installation. If you are using the Windows Subsystem for Linux (WSL) Bash shell, the path would be "C:\Windows\System32\bash.exe"

Now press Ctrl + ` to open up the terminal from Visual Studio Code. And you will have Bash -

Enter image description here

What about detached or unrelated shells and code [args] support?

While other answers talk about how to configure and use the VScode integrated WSL bash terminal support, they don't solve the problem of "detached shells": shells which were not launched from within VScode, or which somehow get "disconnected" from the VScode server instance associated with the IDE.

Such shells can give errors like:

Command is only available in WSL or inside a Visual Studio Code terminal.

or...

Unable to connect to VS Code server. Error in request

Here's a script which makes it easy to solve this problem.

I use this daily to connect shells in a tmux session with a specific VScode server instance, or to fix an integrated shell that's become detached from its hosting IDE.

#!/bin/bash
# codesrv-connect
#
#  Purpose:
#     Copies the vscode connection environment from one shell to another, so that you can use the
#     vscode integrated terminal's "code [args]" command to communicate with that instance of vscode
#     from an unrelated shell.
#
#  Usage:
#    1.  Open an integrated terminal in vscode, and run codesrv-connect
#    2.  In the target shell, cd to the same directory and run
#       ". .codesrv-connect", or follow the instruction printed by codesrv-connect.
#
#  Setup:
#    Put "codesrv-connect somewhere on your PATH (e.g. ~/bin)"
#
#  Cleanup:
#    - Delete abandoned .codesrv-connect files when their vscode sessions die.
#    - Do not add .codesrv-connect files to git repositories.
#
#  Notes:
#     The VSCODE_IPC_HOOK_CLI environment variable points to a socket which is rather volatile, while the long path for the 'code' alias is more stable: vscode doesn't change the latter even across a "code -r ." reload.  But the former is easily detached and so you need a fresh value if that happens.  This is what codesrv-connect does: it captures the value of these two and writes them to .codesrv-connect in the current dir.
#
#   Verinfo: v1.0.0 - les.matheson@gmail.com - 2020-03-31
#

function errExit {
    echo "ERROR: $@" >&2
    exit 1
}

[[ -S $VSCODE_IPC_HOOK_CLI ]] || errExit "VSCODE_IPC_HOOK_CLI not defined or not a pipe [$VSCODE_IPC_HOOK_CLI]"
if [[ $(which code) != *vscode-server* ]]; then
    errExit "The 'code' command doesn't refer to something under .vscode-server: $(type -a code)"
fi
cat <.codesrv-connect
# Temp file created by $(which codesrv-connect): source this into your working shell like '. .codesrv-connect'
# ( git hint: add ".codesrv-connect" to .gitignore )
#
cd "$PWD"
if ! test -S "$VSCODE_IPC_HOOK_CLI"; then
    echo "ERROR: $VSCODE_IPC_HOOK_CLI not a socket. Dead session."
else
    export VSCODE_IPC_HOOK_CLI="$VSCODE_IPC_HOOK_CLI"
    alias code=$(which code)
    echo "Done: the 'code' command will talk to socket \"$VSCODE_IPC_HOOK_CLI\" now."
    echo "You can delete .codesrv-connect when the vscode server context dies, or reuse it in other shells until then."
fi
EOF

echo "# OK: run this to connect to vscode server in a destination shell:"
echo ". $PWD/.codesrv-connect"

Я следовал этому руководству от Пола ДеКарло, чтобы использовать Bash из подсистемы Windows для Linux (WSL) вместо того, что поставляется с Git Bash для Windows. Это те же шаги, что и выше в ответе, но вместо них используйте следующие в настройках пользователя.

"terminal.integrated.shell.windows": "C:\\\Windows\\\sysnative\\\bash.exe",

Это сработало для меня с первого раза... что редкость для такого материала.

Случилось так, что я консультирую Fortune 500 компанию, и это, к сожалению, Windows 7 и никаких привилегий администратора. Таким образом, Node.js, Npm, Visual Studio Code и т.д... были вытеснены на мою машину - я не могу многое изменить и т.д...

Для этого компьютера под управлением Windows 7:

Ниже приведены мои новые настройки. Неработающие настройки закомментированы.

{
    "update.channel": "none",
    "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
    //"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe"
}

Updated: Newer versions of Visual Studio Code have the Select Default Shell command in the terminal pull down menu:

Select Default Shell option

Remember that it just lists the shells that are in your %PATH% environment variable. For shells that aren't in your path, see other answers.

Extra tip: when you start bash it will just execute .bashrc, if you have initialization commands in .bash_profile you must copy it to .bashrc. It's essential for using Conda enviroments in Git Bash.

Before version 1.36 (June 2019)

The easiest way now (at least from Visual Studio Code 1.22 on) is to type Shift + Ctrl + P to open the Command Palette and type:

Select Default Shell

Now you can easily select your preferred shell between the ones found in your path:

Shell selection list

For shells that aren't in your %PATH%, see the other answers.

See the complete Visual Studio Code shell reference. There's lot of meaty stuff.

Для меня это единственная комбинация, которая сработала!

"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\git-cmd.exe",
"terminal.integrated.shellArgs.windows": [
  "--command=usr/bin/bash.exe",
  "-l",
  "-i"
]

При использовании git-bash.exe в качестве ...shell.windows, каждый раз bash открывался вне VS!!!

Слава Богу, наконец-то сработало!!! А то я планировал полностью стереть VS и установить его заново (что заставило бы меня переустановить все мои расширения и переделать мои настройки!)

Я уже установил множество окружений conda на WSL (Bash на Ubuntu в Windows), поэтому я хотел использовать ту же установку Bash на Visual Studio Code.

Для этого мне просто нужно было указать путь к этому конкретному исполняемому файлу Bash (вместо Git-Bash) в настройках Visual Studio Code:

"terminal.integrated.shell.windows": "C:\\\Windows\\\System32\\\bash.exe"


PS: чтобы убедиться, где установлен ваш исполняемый файл Ubuntu on Bash на машине Windows, откройте Command prompt (поиск: cmd) и выполните:

.

где bash.exe

Последний код VS :

  • если вы не видите файл settings.json, перейдите в меню File -> Preferences -> Settings (или нажмите на Ctrl+,)
  • .
  • Появятся настройки, увидите две вкладки User (выбрана по умолчанию) и Workspace. Перейдите в раздел Пользователь -> Функции -> Терминал
  • .
  • Появится раздел Терминал, смотрите ссылку edit in settings.json. Нажмите и добавьте "terminal.integrated.shell.windows": "C:\\\Program Files\\\Git\\bin\\bash.exe",
  • .
  • Сохраните и перезапустите VS code.

Терминал Bash будет отражаться на терминале.

(2021, VSC v.1.55.1)

Как добавить Git Bash в качестве терминала по умолчанию, для тех, кто установил свой Git Bash не по пути по умолчанию:

  1. В Visual Studio Code откройте Настройки, используя Ctrl + ,
  2. .
  3. a) В поле Настройки поиска (красное поле на скриншоте) введите интегрированная автоматизация. введите описание изображения здесь b) Или просто щелкните по Features -> Terminal (синие поля на ss)
  4. Нажмите на любую Редактировать в settings.json. введите описание изображения здесь
  5. Введите местоположение вашего bash.exe в поле "terminal.integrated.shell.windows: " поле введите описание изображения здесь

Примечание1: Поскольку это JSON-файл, не забывайте использовать двойные \\\ вместо \ в вашем пути.

Примечание2: Не путайте bash.exe (он находится в папке bin) с git-bash.exe, в первом случае bash-терминал останется внутри VSC, во втором он будет открыт извне.

введите описание изображения здесь

My VS Code version: 1.56.1 (code --version)

User settings for configuring integrated terminals:

  • Ctrl + Shift + P
  • type: user
  • select: Preferences: Open User Settings
  • click: Open Settings (JSON) button (near to upper right corner)

settings.json:

{
    "terminal.integrated.tabs.enabled": true,
    "terminal.integrated.shell.windows": "\\Git\\bin\\bash.exe",
    "terminal.integrated.defaultProfile.windows": "Git Bash",
    "terminal.integrated.profiles.windows": {
        "Git Bash": {
            "path": "\\Git\\bin\\bash.exe",
            "icon": "terminal-bash"
        },
        "Command Prompt": {
            "path": "${env:windir}\\System32\\cmd.exe",
            "icon": "terminal-cmd"
        },
        "Windows PowerShell": {
            "path": "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
            "icon": "terminal-powershell"
        }
    }
}

terminal.integrated.defaultProfile.windows

This property will only set GitBash to be default when you hit the "add new terminal" ("+") button. It is not enought to make it default on startup.

terminal.integrated.shell.windows

Depricated warning will be shown. But this configuration is needed to make the selected shell (GitBash here) default on startup.

Problem filtering

On PROBLEMS tab, next to the input field, clicking on the filter icon I checked "Show Active File Only" option to make this deprecated error disappear when dealing with anything else.

Добавьте это в файл settings.json

{
    "terminal.integrated.profiles.windows": {
        "PowerShell": {
            "source": "Git Bash",
            "icon": "terminal-bash"
        },

Для пользователей scoop:

"terminal.integrated.shell.windows": "C:\\Users\\[YOUR-NAME]\\scoop\\apps\\git\\current\\usr\\bin\\bash.exe",
"terminal.integrated.shellArgs.windows": [
  "-l",
  "-i"
],

Для открытия терминала в Visual Studio Code не нужно использовать Ctrl + `, как это рекомендуется везде, так как это крайне неудобная операция пальцем. Лучшим решением будет следующее:

Ctrl + j

В последней стабильной сборке, т.е. 1.54, отключение ConPTY решило мою проблему. Я пишу это на случай, если это решит и вашу проблему.

{

 "terminal.integrated.shell.windows": "C:\\path\\to\\bin\\bash.exe",
 "terminal.integrated.windowsEnableConpty": false
}

просто перейдите в settings.json в коде visual studio и добавьте эту строку:

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

В связи с последними обновлениями Visual Studio Code ситуация немного изменилась. Следующие шаги работают для меня.

  1. Нажмите Ctrl + Shift + P, чтобы открыть панель команд Visual Studio Code.

  2. Тип >preferences: Open Settings (JSON) в текстовой области.

  3. Введите >preferences: Open Settings (JSON) в текстовую область.

  4. Добавьте следующие строки в конец файла JSON, который отображается в правой панели. правой панели.

     "terminal.integrated.shell.windows": "C:\\\Program Files\\\Git\\bin\\bash.exe".
    
  5. Закройте и снова откройте ваш экземпляр Visual Studio Code.

Добавьте каталог Git\bin в переменную окружения Path. По умолчанию это %ProgramFiles%\Git\bin. Таким образом, вы сможете получить доступ к Git Bash, просто набрав bash в любом терминале, включая интегрированный терминал Visual Studio Code.

Как установить путь и переменные среды в Windows

.

Visual Studio Code может обнаружить и перечислить установленный Git Bash в меню config Terminal: Select Default Profile, как уже описано во многих других ответах, но со мной такого не случалось. Для тех, кому не повезло так же, как мне, вы можете добавить пользовательский профиль в settings.json Visual Studio Code вручную:

{{
    // Проверено в Visual Studio Code версии 1.58.2, 1.59.1
    // Заметка: мой путь установки git - `D:\Git\bin\bash.exe`.

    // "terminal.integrated.shell.windows": "D:\\Git\\bin\\bash.exe",
    //Это работает нормально для меня в течение долгого времени,
    // но в последних версиях это сообщается как устаревшее,
    // вы можете оставить это и иногда Visual Studio Code будет предлагать помочь
    // "переместить" его в новую настройку.

    // Эта часть может быть сгенерирована Visual Studio Code
    "terminal.integrated.profiles.windows": {
        // Похоже, что это зарезервированное имя профиля, а также не работает для...
        // меня
        "Git Bash": {
            "path": "D:\\Git\\bin\\bash.exe",
            "icon": "terminal-bash".
        },
        "PowerShell": {
            "source": "PowerShell",
            "icon": "terminal-powershell".
        },
        "Command Prompt": {
            "path": [
                "${env:windir}\\\\Sysnative\\\cmd.exe",
                "${env:windir}\\System32\\cmd.exe"
            ],
            "args": [],
            "icon": "terminal-cmd"
        },

        // Добавьте свой пользовательский с именем профиля, отличным от "Git Bash"
        "gitbash": {
            "path": "D:\\Git\\bin\\bash.exe",
            "icon": "terminal-bash".
        }
    },
    // Устанавливаем пользовательский профиль по умолчанию
    "terminal.integrated.defaultProfile.windows": "gitbash",

    // ...
}

Нажмите и удерживайте Ctrl + `, чтобы открыть терминал. Внутри терминала введите bash, чтобы использовать Git Bash в терминале. Примечание: Убедитесь, что Git Bash установлен на вашей машине.

Если вы хотите снова использовать PowerShell, просто введите powershell в терминале. Чтобы использовать командную строку Windows, введите cmd в терминале.

Выбранная вами настройка будет использоваться по умолчанию.

Если у вас уже есть CLI "bash", "powershell" и "cmd" и правильно настроены пути, то переход от одного CLI к другому можно осуществить следующими способами.

Ctrl + ' : Открывает окно терминала с CLI по умолчанию.

bash + enter : Переключение с вашей стандартной/текущей CLI на bash CLI.

powershell + enter : Переход от стандартного/текущего CLI к powershell CLI.

cmd + enter : Переключение с вашего стандартного/текущего CLI на cmd CLI.

Версия кода VS, которую я использую, - 1.45.0

Это, по крайней мере для меня, заставит Visual Studio Code открывать новое окно Bash в качестве внешнего терминала.

Если вам нужна интегрированная среда, вам нужно указать на файл sh.exe в папке bin вашей установки Git.

Так что в конфигурации должно быть написано C:\\\\\bin\\\sh.exe.

Этот ответ похож на ответ, занявший первое место в голосовании, но с важным отличием: многие предыдущие ответы на этот вопрос сосредоточены на запуске Git Bash, тогда как мой ответ сосредоточен на запуске WSL Bash.

  1. Включите подсистему Windows для Linux на машине с Windows 10.

  2. Откройте Visual Studio Code и нажмите и удерживайте Ctrl + `, чтобы открыть терминал.

  3. .
  4. Откройте палитру команд, используя Ctrl + Shift + P.

  5. Тип - Выбрать оболочку по умолчанию.

  6. Выберите WSL Bash (НЕ Git Bash) из опций.

введите описание изображения здесь

  1. Нажмите на значок + в окне терминала. Теперь новый терминал будет терминалом WSL Bash!

VS CODE 1.60.0

Как я столкнулся с предыдущей проблемой, Git Bash вообще не распознается, хотя ранее был установлен. Чтобы любое из вышеупомянутых решений сработало, необходимо следовать инструкциям, обсуждаемым в этой теме и перечисленным ниже.

  1. Зайдите в свой settings.json
  2. включите git bash, добавив "git.enabled": true
  3. и определите его путь, добавив "git.path": "<ВАШ ПУТЬ К GIT>\\\Git\\bin\\\bash.exe"
  4. .

После этого, инструкции, например, определенные @rustyhu, будут работать.

PS: Надеюсь, я сэкономлю вам пару часов времени при отладке первоначально заявленной проблемы

.

Я попробовал приведенные выше ответы в версии vscode 1.42.1, и они сработали в той мере, в какой мне удалось получить терминал git bash. Итак, в итоге эта настройка работает только для открытия оболочки bash из терминала:

"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"

Но у него есть нежелательный побочный эффект: он также является оболочкой, используемой для сборки вещей, и это нарушает цепочку MS C++, поскольку символ \, используемый для разделителя путей, понимается bash как escape-символ. Для полного исправления мне потребовалось добавить дополнительную переменную, установив ее в powershell:

"terminal.integrated.automationShell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"

Сейчас я могу использовать терминал bash и Ctrl-Shift-B или F5 работают без проблем.

О, и как отметили другие плакаты, источником этой информации является документация VSCode.

Это зависит от того, установили ли вы Git Bash только для текущего пользователя или для всех пользователей:

Если он установлен у всех пользователей, то поставьте "terminal.integrated.shell.windows": "C:\\\Program Files\\\Git\\\bin\\bash.exe" в настройках пользователя (Ctrl + Comma).

Если он установлен только у текущего пользователя, то поставьте "terminal.integrated.shell.windows": "C:\\\Users\\\<имя вашего пользователя>\\\AppData\\Local\\Programs\\\Git\\\bin\\bash.exe" в настройках пользователя (Ctrl + Comma).

Если перечисленные выше методы не работают, то вам следует попробовать решение Кристера, в котором говорится -

Если вы хотите интегрированную среду, вам нужно указать на файл sh.exe в папке bin вашей установки Git.

Так что в конфигурации должно быть написано C:\\\\\\bin\\\sh.exe.

Примечание: Sh.exe и bash.exe кажутся мне совершенно одинаковыми. Между ними не должно быть никакой разницы.

2022 WebDevInsider