Program Visual Studio Code w systemie Windows domyślnie używa programu PowerShell jako zintegrowanego terminala. Jeśli chcesz korzystać z Bash z Visual Studio Code, jakie kroki należy wykonać?
Program Visual Studio Code w systemie Windows domyślnie używa programu PowerShell jako zintegrowanego terminala. Jeśli chcesz korzystać z Bash z Visual Studio Code, jakie kroki należy wykonać?
Odpowiedzi:
Nie musisz już ręcznie wpisywać ścieżki bash.exe. Ta odpowiedź jest nieaktualna. Teraz możesz przejść bezpośrednio na bash. Tylko upewnij się, że masz zainstalowany git.
Zainstaluj Git z https://git-scm.com/download/win .
Następnie otwórz program Visual Studio Code i otwórz paletę poleceń za pomocą Ctrl+ Shift+ P. Następnie wpisz „otwórz ustawienia użytkownika”, a następnie wybierz „Otwórz ustawienia użytkownika” z menu rozwijanego.
Następnie otworzy się ta karta z ustawieniami domyślnymi po lewej stronie i ustawieniami po prawej:
Teraz skopiuj ten wiersz kodu na własną stronę ustawień (panel po prawej stronie) i zapisz -
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Uwaga: "C:\\Program Files\Git\bin\bash.exe"
jest ścieżką, w której bash.exe
znajduje się plik z instalacji Git. Jeśli używasz powłoki Bash systemu Windows Subsystem for Linux (WSL), ścieżka będzie wyglądać następująco"C:\Windows\System32\bash.exe"
Teraz naciśnij Ctrl+, `aby otworzyć terminal z Visual Studio Code. I będziesz miał Bash -
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\bin\bash.exe"
terminalem, który się nie otwierał. Próbowałem "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
. Działa dla mnie idealnie.
bash.exe
, a nie git-bash.exe
. Ten ostatni otworzy terminal poza kodem VS jako osobne okno, podczas gdy bash.exe
będzie działał wewnątrz kodu VS.
Zainstaluj Git z https://git-scm.com/download/win
Otwórz Visual Studio Code i naciśnij i przytrzymaj Ctrl+, `aby otworzyć terminal.
Otwórz paletę poleceń za pomocą Ctrl+ Shift+ P.
Typ - wybierz Domyślna powłoka
Wybierz Git Bash z opcji
Kliknij ikonę + w oknie terminala
Nowy terminal będzie teraz terminalem Git Bash. Daj mu kilka sekund na załadowanie Git Bash
Możesz teraz przełączać się między różnymi terminalami również z menu rozwijanego w terminalu.
Zaktualizowano: nowsze wersje programu Visual Studio Code mają polecenie Wybierz domyślną powłokę w menu rozwijanym terminala:
Pamiętaj, że po prostu wyświetla listę powłok znajdujących się w zmiennej środowiskowej% PATH%. W przypadku muszli, które nie są na twojej drodze, zobacz inne odpowiedzi.
Dodatkowa wskazówka: po uruchomieniu bash po prostu się uruchomi .bashrc
, jeśli masz w nim polecenia inicjalizujące .bash_profile
, musisz go skopiować .bashrc
. Jest to niezbędne do używania środowiska Conda w Git Bash.
Najłatwiejszym sposobem (przynajmniej od wersji Visual Studio Code 1.22) jest wpisanie Shift+ Ctrl+, Paby otworzyć paletę poleceń i wpisać:
Select Default Shell
Teraz możesz łatwo wybrać preferowaną powłokę spośród tych znalezionych na twojej ścieżce :
W przypadku powłok, których nie ma w% PATH%, zobacz inne odpowiedzi.
Zobacz pełne odniesienie do powłoki Visual Studio Code . Jest dużo mięsnych rzeczy.
Naciśnij i przytrzymaj Ctrl+, `aby otworzyć terminal. Wewnątrz terminala wpisz, bash
aby użyć Git Bash w terminalu. Uwaga: Upewnij się, że masz zainstalowany Git Bash na swoim komputerze.
Jeśli chcesz ponownie użyć programu PowerShell, po prostu wpisz powershell
terminal. Aby użyć wiersza polecenia systemu Windows, wpisz cmd
terminal.
Wybrane ustawienie zostanie użyte jako domyślne.
exit
z poziomu powłoki bash działającej wewnątrz domyślnej powłoki, a następnie wpisz, powershell
ponieważ bash nie wie, co to jest PowerShell.
Dla mnie poniżej jest jedyna kombinacja, która działa!
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\git-cmd.exe",
"terminal.integrated.shellArgs.windows": [
"--command=usr/bin/bash.exe",
"-l",
"-i"
]
Z git-bash.exe jako za ...shell.windows
każdym razem, gdy Bash otwierał się poza Visual Studio !!
Wszystko zostało nieco zmienione z powodu najnowszych aktualizacji Visual Studio Code. Poniższe kroki działają dla mnie.
Naciśnij Ctrl+Shift +, Paby otworzyć podniebienie polecenia Visual Studio Code.
Rodzaj >preferences: Open Settings (JSON)
w polu tekstowym.
Dodaj następujące wiersze na końcu pliku JSON, który jest wyświetlany w panelu po prawej stronie.
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Zamknij i ponownie otwórz instancję programu Visual Studio Code.
Wykonałem ten samouczek od Paula DeCarlo, aby użyć Bash z podsystemu Windows dla systemu Linux (WSL) zamiast tego, co jest dostarczane z Git Bash dla systemu Windows. Są to te same kroki, co powyżej w odpowiedzi, ale zamiast tego użyj poniżej w Ustawieniach użytkownika.
"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe",
To zadziałało dla mnie po raz pierwszy ... co jest rzadkością dla tych rzeczy.
Zależy to od tego, czy zainstalowałeś Git Bash tylko dla bieżącego użytkownika czy wszystkich użytkowników:
Jeśli jest zainstalowany na wszystkich użytkownikach, wprowadź "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
ustawienia użytkownika ( Ctrl+ Comma).
Jeśli jest zainstalowany tylko na bieżącym użytkowniku, wprowadź "terminal.integrated.shell.windows": "C:\\Users\\<name of your user>\\AppData\\Local\\Programs\\Git\\bin\\bash.exe"
ustawienia użytkownika ( Ctrl+ Comma).
Jeśli powyższe metody nie działają, powinieneś wypróbować rozwiązanie Christera, które mówi:
Jeśli chcesz zintegrowane środowisko, musisz wskazać
sh.exe
plik wbin
folderze instalacji Git.Tak więc konfiguracja powinna powiedzieć
C:\\<my-git-install>\\bin\\sh.exe
.
Uwaga: sh.exe i bash.exe wydają mi się całkowicie takie same. Nie powinno być między nimi żadnej różnicy.
Dodaj Git\bin
katalog do Path
zmiennej środowiskowej. Katalog jest %ProgramFiles%\Git\bin
domyślnie. W ten sposób możesz uzyskać dostęp do Git Bash po prostu wpisując bash
każdy terminal, w tym zintegrowany terminal Visual Studio Code.
Jak ustawić ścieżkę i zmienne środowiskowe w systemie Windows
Już skonfigurowałem wiele conda
środowisk WSL
(Bash na Ubuntu w systemie Windows), więc chciałem użyć tej samej instalacji Bash na Visual Studio Code.
Aby to zrobić, musiałem jedynie określić ścieżkę do tego konkretnego pliku wykonywalnego Bash ( zamiast zGit-Bash
) o ustawieniach kodu Visual Studio:
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\bash.exe"
PS : aby upewnić się, gdzie na komputerze z systemem Windows jest zainstalowany plik wykonywalny Ubuntu on Bash, otwórz Command prompt
(szukaj:cmd
:) i uruchom:
where bash.exe
Ta odpowiedź jest podobna do najczęściej głosowanej odpowiedzi, ale z ważnym rozróżnieniem: wiele poprzednich odpowiedzi na to pytanie koncentruje się na uruchomieniu Git Bash, podczas gdy moja odpowiedź koncentruje się na uruchomieniu WSL Bash .
Włącz podsystem Windows dla systemu Linux na komputerze z systemem Windows 10.
Otwórz Visual Studio Code i naciśnij i przytrzymaj, Ctrl + `aby otworzyć terminal.
Otwórz paletę poleceń za pomocą Ctrl + Shift + P.
Wpisz - Select Default Shell
.
Wybierz WSL Bash
(NIE Git Bash
) z opcji.
+
ikonę w oknie terminala. Nowy terminal będzie teraz terminalem WSL Bash!Najnowszy kod VS:
Ctrl+,
)edit in settings.json
. Kliknij i dodaj"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
Terminal Bash będzie odzwierciedlał terminal.
Tak się składa, że konsultuję się z firmą z listy Fortune 500 i to niestety Windows 7 i brak uprawnień administratora. W ten sposób Node.js, Npm, Visual Studio Code itp. Zostały wypchnięte na moją maszynę - nie mogę wiele zmienić itp.
Dla tego komputera z systemem Windows 7:
Poniżej znajdują się moje nowe ustawienia. Ten, który nie działa, został skomentowany.
{
"update.channel": "none",
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
//"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe"
}
Próbowałem powyższych odpowiedzi od vscode 1.42.1 i działały one tak, że dały mi terminal git bash. Podsumowując, to ustawienie działa tylko do otwierania powłoki bash z terminala:
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Ma jednak niepożądany efekt uboczny, ponieważ jest również powłoką używaną do budowania różnych rzeczy i przerywa łańcuch MS C ++, ponieważ \
znak użyty do separatora ścieżek jest rozumiany przez bash jako znak ucieczki. Pełna poprawka dla mnie wymagała wtedy dodania tej dodatkowej zmiennej, ustawiając ją na PowerShell:
"terminal.integrated.automationShell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
Teraz mogę mieć mój terminal bash i Ctrl-Shift-B
lubF5
pracować bez problemów.
Aha, i jak wspomniano w innych plakatach, źródłem tych informacji jest dokumentacja VSCode .
Co z odłączonymi lub niepowiązanymi powłokami i code [args]
wsparciem?
Podczas gdy inne odpowiedzi mówią o tym, jak skonfigurować i używać zintegrowanego WSL VScode bash
obsługi terminalu , nie rozwiązują one problemu „odłączonych powłok”: powłok, które nie zostały uruchomione z VScode lub które zostały „odłączone” od serwera VScode instancja powiązana z IDE.
Takie powłoki mogą powodować błędy, takie jak:
Command is only available in WSL or inside a Visual Studio Code terminal.
lub...
Unable to connect to VS Code server.
Error in request
Oto skrypt który ułatwia rozwiązanie tego problemu.
Używam tego codziennie do łączenia powłok w tmux
sesji z konkretną instancją serwera VScode lub do naprawy zintegrowanej powłoki, która została odłączona od swojego IDE hosta.
#!/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"
Jeśli masz już interfejs CLI „bash”, „powershell” i „cmd” i masz prawidłowe ustawienia ścieżki, przełączanie z jednego interfejsu CLI na inny można wykonać w następujący sposób.
Ctrl+ ': Otwiera okno terminala z domyślnym interfejsem CLI.
bash + enter: Przełącz z domyślnego / bieżącego interfejsu CLI na bash interfejs CLI.
powershell + enter: Przełącz z domyślnego / bieżącego interfejsu CLI na PowerShell CLI.
cmd + enter: Przełącz z domyślnego / bieżącego CLI na cmd CLI.
Wersja kodu VS, której używam, to 1.45.0