Код Visual Studio в Windows по умолчанию использует PowerShell в качестве встроенного терминала. Если вы хотите использовать Bash из кода Visual Studio, какие шаги следует выполнить?
Код Visual Studio в Windows по умолчанию использует PowerShell в качестве встроенного терминала. Если вы хотите использовать Bash из кода Visual Studio, какие шаги следует выполнить?
Ответы:
Вам больше не нужно вводить путь bash.exe вручную. Этот ответ не рекомендуется. Теперь вы можете переключиться на bash напрямую. Просто убедитесь, что у вас установлен git.
Установите Git с https://git-scm.com/download/win .
Затем откройте Visual Studio Code и откройте палитру команд, используя Ctrl+ Shift+ P. Затем введите «Открыть настройки пользователя», а затем выберите «Открыть настройки пользователя» в раскрывающемся меню.
Затем откроется эта вкладка с настройками по умолчанию слева и настройками справа:
Теперь скопируйте эту строку кода на свою страницу настроек (панель справа) и сохраните -
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Примечание: "C:\\Program Files\Git\bin\bash.exe"
это путь к bash.exe
файлу из установки Git. Если вы используете оболочку Bash Windows Subsystem для Linux (WSL), путь будет"C:\Windows\System32\bash.exe"
Теперь нажмите Ctrl+, `чтобы открыть терминал из кода Visual Studio. И у тебя будет Баш -
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\bin\bash.exe"
, терминал не открывался. Пробовал "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
. Работал отлично для меня.
bash.exe
, а не git-bash.exe
. Последний откроет терминал вне кода VS как отдельное окно, а bash.exe
будет работать внутри кода VS.
Установите Git с https://git-scm.com/download/win
Откройте код Visual Studio и нажмите и удерживайте Ctrl+, `чтобы открыть терминал.
Откройте палитру команд, используя Ctrl+ Shift+ P.
Тип - Выбрать оболочку по умолчанию
Выберите Git Bash из вариантов
Нажмите на значок + в окне терминала
Новый терминал теперь будет терминалом Git Bash. Дайте несколько секунд, чтобы загрузить Git Bash
Теперь вы можете переключаться между различными терминалами из раскрывающегося списка терминалов.
Обновлено: в более новых версиях кода Visual Studio в выпадающем меню терминала есть команда « Выбрать оболочку по умолчанию» :
Помните, что он просто перечисляет оболочки, которые находятся в вашей переменной окружения% PATH%. Для раковин, которые не находятся на вашем пути, смотрите другие ответы.
Дополнительный совет: когда вы запускаете bash, он просто будет выполняться .bashrc
, если у вас есть команды инициализации, .bash_profile
вы должны скопировать его в .bashrc
. Это важно для использования среды Conda в Git Bash.
Самый простой способ (по крайней мере, начиная с Visual Studio Code 1.22) - набрать Shift+ Ctrl+, Pчтобы открыть палитру команд, и набрать:
Select Default Shell
Теперь вы можете легко выбрать предпочитаемую оболочку из найденных на вашем пути :
Для оболочек, которых нет в вашем% PATH%, смотрите другие ответы.
Смотрите полную ссылку на оболочку кода Visual Studio . Там много мясных вещей.
Нажмите и удерживайте Ctrl+, `чтобы открыть терминал. Внутри терминала введите bash
Git Bash в терминале. Примечание. Убедитесь, что на вашем компьютере установлен Git Bash.
Если вы хотите снова использовать PowerShell, просто введите powershell
терминал. Чтобы использовать командную строку Windows, введитеcmd
в терминале.
Выбранная вами настройка будет использоваться по умолчанию.
exit
из оболочки bash, запущенной внутри оболочки по умолчанию, ввести команду, powershell
поскольку bash не знает, что такое powershell.
Для меня следующее единственное сочетание, которое работает!
"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 открывался вне Visual Studio !!
Ситуация немного изменилась из-за последних обновлений кода Visual Studio. Следующие шаги работают для меня.
Нажмите Ctrl+ Shift+, Pчтобы открыть окно команд Visual Studio Code.
Введите >preferences: Open Settings (JSON)
текстовое поле.
Добавьте следующие строки в конец файла JSON, который отображается в правой панели.
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Закройте и снова откройте экземпляр кода Visual Studio.
Я следовал этому уроку от Пола ДеКарло, чтобы использовать Bash из подсистемы Windows для Linux (WSL) вместо того, что поставляется с Git Bash для Windows. Это те же шаги, что указаны выше в ответе, но вместо этого используйте ниже в ваших пользовательских настройках.
"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe",
Это сработало для меня в первый раз ... что редко для этого материала.
Это, по крайней мере для меня, заставит Visual Studio Code открывать новое окно Bash в качестве внешнего терминала.
Если вы хотите интегрированную среду, вам нужно указать на sh.exe
файл внутриbin
папке вашей установки Git.
Так что конфигурация должна сказать C:\\<my-git-install>\\bin\\sh.exe
.
Это зависит от того, установили ли вы Git Bash только для текущего пользователя или для всех пользователей:
Если он установлен на всех пользователях, "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
укажите его в настройках пользователя ( Ctrl+ Comma).
Если он установлен только для текущего пользователя, то "terminal.integrated.shell.windows": "C:\\Users\\<name of your user>\\AppData\\Local\\Programs\\Git\\bin\\bash.exe"
укажите в настройках пользователя ( Ctrl+ Comma).
Если методы, перечисленные выше, не работают, вам следует попробовать решение Кристера, которое гласит:
Если вы хотите интегрированную среду, вам нужно указать на
sh.exe
файл вbin
папке вашей установки Git.Так что конфигурация должна сказать
C:\\<my-git-install>\\bin\\sh.exe
.
Примечание: sh.exe и bash.exe кажутся мне абсолютно одинаковыми. Там не должно быть никакой разницы между ними.
Добавьте Git\bin
каталог в Path
переменную среды. Каталог %ProgramFiles%\Git\bin
по умолчанию. Таким образом, вы можете получить доступ к Git Bash, просто набрав bash
на каждом терминале, включая встроенный терминал кода Visual Studio.
Я уже настроил множество conda
сред WSL
(Bash для Ubuntu в Windows), поэтому я хотел использовать ту же установку Bash в Visual Studio Code.
Чтобы сделать это, я просто должен был указать путь к этому конкретному Башу исполняемого ( вместо изGit-Bash
) о настройках Visual Studio Кодекса:
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\bash.exe"
PS : чтобы убедиться, что на вашем компьютере с Windows установлен исполняемый файл Ubuntu на Bash, откройте Command prompt
(search:) cmd
и запустите:
where bash.exe
Этот ответ похож на ответ с наибольшим количеством голосов, но с важным отличием: многие предыдущие ответы на этот вопрос посвящены запуску Git Bash, в то время как мой ответ посвящен запуску WSL Bash .
Включите подсистему Windows для Linux на компьютере с Windows 10.
Откройте код Visual Studio и нажмите и удерживайте, Ctrl + `чтобы открыть терминал.
Откройте командную палитру, используя Ctrl + Shift + P.
Тип - Select Default Shell
.
Выберите WSL Bash
(НЕ Git Bash
) из вариантов.
+
значок в окне терминала. Новый терминал теперь будет терминалом WSL Bash!Последний код VS:
Ctrl+,
)edit in settings.json
. Нажмите и добавьте"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
Bash терминал отразится на терминале.
Я консультируюсь с компанией из списка 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"
}
Я попробовал вышеуказанные ответы, начиная с 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 .
Как насчет отдельных или несвязанных оболочек и code [args]
опор?
В то время как другие ответы говорят о том, как настроить и использовать поддержку WSCL- bash
терминала, интегрированного с VScode , они не решают проблему «отдельных оболочек»: оболочек, которые не были запущены из VScode или которые каким-то образом «отключаются» от сервера VScode Экземпляр, связанный с IDE.
Такие оболочки могут давать ошибки, такие как:
Command is only available in WSL or inside a Visual Studio Code terminal.
или...
Unable to connect to VS Code server.
Error in request
Вот скрипт который позволяет легко решить эту проблему.
Я использую это ежедневно для соединения оболочек в tmux
сеансе с конкретным экземпляром сервера VScode или для исправления встроенной оболочки, которая отсоединяется от 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 <<EOF >.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"
Если у вас уже есть 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