Visual Studio Code в Windows використовується PowerShell за замовчуванням як інтегрований термінал. Якщо ви хочете використовувати Bash від Visual Studio Code, яких кроків слід дотримуватися?
Visual Studio Code в Windows використовується PowerShell за замовчуванням як інтегрований термінал. Якщо ви хочете використовувати Bash від Visual Studio Code, яких кроків слід дотримуватися?
Відповіді:
Більше не потрібно вводити шлях 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. Якщо ви використовуєте підсистему Windows для оболонки Bash для Linux (WSL), шлях буде таким"C:\Windows\System32\bash.exe"
Тепер натисніть Ctrl+, `щоб відкрити термінал з коду Visual Studio. І у вас буде Bash -
"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 Code і натисніть і утримуйте Ctrl+, `щоб відкрити термінал.
Відкрийте палітру команд за допомогою Ctrl+ Shift+ P.
Тип - Виберіть оболонку за замовчуванням
Виберіть Git Bash з опцій
Клацніть на значку + у вікні терміналу
Новим терміналом тепер буде термінал Git Bash. Дайте йому кілька секунд, щоб завантажити Git Bash
Тепер ви можете перемикатися між різними терміналами, а також зі спадного терміналу.
Оновлено: новіші версії коду Visual Studio містять команду Select Shell за замовчуванням у спадному меню терміналу:
Пам'ятайте, що він просто перелічує оболонки, які знаходяться у вашій змінній оточення% PATH%. Про снаряди, які не на вашому шляху, дивіться інші відповіді.
Додатковий підказок: коли ви запускаєте bash, він просто виконуватиметься .bashrc
, якщо у вас є команди ініціалізації, .bash_profile
ви повинні скопіювати його .bashrc
. Це важливо для використання оточення Conda в Git Bash.
Найпростіший спосіб (принаймні з Visual Studio Code 1.22) - набрати Shift+ Ctrl+, Pщоб відкрити палітру команд і ввести:
Select Default Shell
Тепер ви можете легко вибрати бажану оболонку між знайденими на вашому шляху :
Для оболонок, які не містять вашого% PATH%, дивіться інші відповіді.
Дивіться повну посилання на оболонку Visual Studio Code . Там багато м'ясного.
Натисніть і утримуйте Ctrl+, `щоб відкрити термінал. Всередині терміналу введіть bash
для використання Git Bash у терміналі. Примітка. Переконайтеся, що на вашій машині встановлений Git Bash.
Якщо ви хочете знову використовувати PowerShell, просто введіть powershell
термінал. Для використання командного рядка Windows введіть cmd
термінал.
Вибране налаштування використовуватиметься за замовчуванням.
exit
з вашої bash shell, що працює всередині оболонки за замовчуванням, а потім введіть, powershell
оскільки bash не знає, що таке shellhell.
Для мене наступне - це єдине поєднання, яке працює!
"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 Code і натисніть і утримуйте, 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 shell з терміналу:
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Однак у нього є небажаний побічний ефект - це також оболонка, яка використовується для створення речей, і це розриває ланцюг MS C ++, оскільки \
символ, який використовується для роздільника шляху, розуміється bash як символом втечі. Тоді для мене повне виправлення вимагало додати цю додаткову змінну, встановивши її в shellhell:
"terminal.integrated.automationShell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
Тепер я можу мати свій баш-термінал і / Ctrl-Shift-B
або F5
працювати без проблем.
О, і як згадували інші афіші, джерелом цієї інформації є документація VSCode .
А як щодо відокремлених або споріднених снарядів та code [args]
опор?
Хоча в інших відповідях йдеться про те, як налаштувати та використовувати bash
підтримку терміналу WSL-інтегрованої 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"
Якщо у вас вже є "bash", "powerhell" та "cmd" CLI, і ви маєте правильні налаштування шляху, то перехід від одного CLI до іншого може здійснюватися такими способами.
Ctrl+ ': Відкриває вікно терміналу з CLI за замовчуванням.
bash + enter: перехід від стандартного / поточного CLI до bash CLI.
powershell + enter: Перехід від стандартного / поточного CLI до CLI powershell .
cmd + enter: перехід від CLI за замовчуванням / поточним CLI до CLD CLI.
Версія коду VS, яку я використовую, становить 1.45.0