Visual Studio Code su Windows utilizza PowerShell per impostazione predefinita come terminale integrato. Se si desidera utilizzare Bash dal codice di Visual Studio, quali passaggi devono essere seguiti?
Visual Studio Code su Windows utilizza PowerShell per impostazione predefinita come terminale integrato. Se si desidera utilizzare Bash dal codice di Visual Studio, quali passaggi devono essere seguiti?
Risposte:
Non è più necessario digitare manualmente il percorso bash.exe. Questa risposta è obsoleta. Ora puoi passare direttamente a bash. Assicurati di aver installato git.
Installa Git da https://git-scm.com/download/win .
Quindi apri Visual Studio Code e apri la tavolozza dei comandi usando Ctrl+ Shift+ P. Quindi digitare "Apri impostazioni utente", quindi selezionare "Apri impostazioni utente" dal menu a discesa.
Quindi questa scheda si aprirà con le impostazioni predefinite a sinistra e le tue impostazioni a destra:
Ora copia questa riga di codice nella tua pagina delle impostazioni (il riquadro a destra) e salva -
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Nota: "C:\\Program Files\Git\bin\bash.exe"
è il percorso in cui bash.exe
si trova il file dall'installazione di Git. Se si utilizza la shell Bash del sottosistema Windows per Linux (WSL), il percorso sarebbe"C:\Windows\System32\bash.exe"
Ora premi Ctrl+ `per aprire il terminale da Visual Studio Code. E avrai Bash -
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\bin\bash.exe"
, il terminale non si apriva. Provato "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
. Ha funzionato perfettamente per me.
bash.exe
e non git-bash.exe
. Quest'ultimo aprirà un terminale esterno al codice VS come una finestra separata, mentre bash.exe
verrà eseguito all'interno del codice VS.
Installa Git da https://git-scm.com/download/win
Apri il codice di Visual Studio e tieni premuto Ctrl+ `per aprire il terminale.
Aprire la tavolozza dei comandi utilizzando Ctrl + Shift+ P.
Tipo: selezionare Shell predefinita
Seleziona Git Bash dalle opzioni
Fare clic sull'icona + nella finestra del terminale
Il nuovo terminale ora sarà un terminale Git Bash. Dagli qualche secondo per caricare Git Bash
È ora possibile alternare tra i diversi terminali e dal menu a discesa nel terminale.
Aggiornato: le versioni più recenti di Visual Studio Code hanno il comando Seleziona shell predefinita nel menu a discesa del terminale:
Ricorda che elenca solo le shell presenti nella variabile di ambiente% PATH%. Per le shell che non sono nel tuo percorso, vedi altre risposte.
Suggerimento extra: quando avvii bash verrà eseguito .bashrc
, se hai comandi di inizializzazione .bash_profile
devi copiarlo .bashrc
. È essenziale per l'utilizzo degli ambienti Conda in Git Bash.
Il modo più semplice ora (almeno da Visual Studio Code 1.22 in poi) è digitare Shift+ Ctrl+ Pper aprire la Tavolozza comandi e digitare:
Select Default Shell
Ora puoi facilmente selezionare la tua shell preferita tra quelle trovate nel tuo percorso :
Per le shell che non sono nel tuo% PATH%, vedi le altre risposte.
Vedere il riferimento completo alla shell del codice di Visual Studio . Ci sono molte cose carnose.
Tenere premuto Ctrl+ `per aprire il terminale. All'interno del terminale, digitare bash
per utilizzare Git Bash nel terminale. Nota: assicurati di avere Git Bash installato sul tuo computer.
Se desideri utilizzare di nuovo PowerShell, digita semplicemente powershell
il terminale. Per utilizzare la riga di comando di Windows, digitarecmd
il terminale.
L'impostazione scelta verrà utilizzata come predefinita.
exit
tu esegua la shell bash all'interno della shell predefinita, quindi digita powershell
poiché bash non sa cosa sia PowerShell.
Per me la seguente è l'unica combinazione che funziona!
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\git-cmd.exe",
"terminal.integrated.shellArgs.windows": [
"--command=usr/bin/bash.exe",
"-l",
"-i"
]
Con git-bash.exe come ...shell.windows
, ogni volta che Bash si apriva al di fuori di Visual Studio !!
Le cose sono state un po 'cambiate a causa degli ultimi aggiornamenti su Visual Studio Code. I seguenti passaggi funzionano per me.
Premi Ctrl+ Shift+ Pper aprire il palato dei comandi di Visual Studio Code.
Digita >preferences: Open Settings (JSON)
l'area di testo.
Aggiungi le seguenti righe alla fine del file JSON che viene visualizzato nel riquadro di destra.
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Chiudi e riapri l'istanza di Visual Studio Code.
Ho seguito questo tutorial di Paul DeCarlo per usare Bash dal sottosistema Windows per Linux (WSL) invece di quello che viene fornito con Git Bash per Windows. Sono gli stessi passaggi sopra indicati nella risposta, ma utilizza invece le seguenti impostazioni utente.
"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe",
Questo ha funzionato per me la prima volta ... il che è raro per queste cose.
Questo, almeno per me, farà aprire a Visual Studio Code una nuova finestra di Bash come terminale esterno.
Se si desidera l'ambiente integrato, è necessario puntare al sh.exe
file all'interno dibin
cartella dell'installazione di Git.
Quindi la configurazione dovrebbe dire C:\\<my-git-install>\\bin\\sh.exe
.
Dipende se hai installato Git Bash solo nell'attuale utente o in tutti gli utenti:
Se è installato su tutti gli utenti, inserisci le "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
tue Impostazioni utente ( Ctrl+ Comma).
Se è installato solo sull'utente corrente, inserisci le "terminal.integrated.shell.windows": "C:\\Users\\<name of your user>\\AppData\\Local\\Programs\\Git\\bin\\bash.exe"
tue Impostazioni utente ( Ctrl+ Comma).
Se i metodi sopra elencati non funzionano, dovresti provare la soluzione di Christer che dice:
Se si desidera l'ambiente integrato, è necessario puntare al
sh.exe
file all'interno dellabin
cartella dell'installazione di Git.Quindi la configurazione dovrebbe dire
C:\\<my-git-install>\\bin\\sh.exe
.
Nota: sh.exe e bash.exe mi sembrano completamente uguali. Non ci dovrebbero essere differenze tra loro.
Aggiungi la Git\bin
directory alla Path
variabile d'ambiente. La directory è %ProgramFiles%\Git\bin
di default. In questo modo puoi accedere a Git Bash semplicemente digitando bash
ogni terminale incluso il terminale integrato di Visual Studio Code.
Come impostare il percorso e le variabili di ambiente in Windows
Avevo già impostato molti conda
ambienti su WSL
(Bash su Ubuntu su Windows), quindi volevo usare la stessa installazione di Bash su Visual Studio Code.
Per fare ciò, dovevo solo specificare il percorso di questo particolare eseguibile di Bash ( anziché ilGit-Bash
) nelle impostazioni di Visual Studio Code:
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\bash.exe"
PS : per accertarti che il tuo eseguibile Ubuntu su Bash sia installato sul tuo computer Windows, apri Command prompt
(cerca cmd
:) ed esegui:
where bash.exe
Questa risposta è simile alla risposta più votata, ma con un'importante distinzione: molte delle risposte precedenti su questa domanda si concentrano sull'esecuzione di Git Bash mentre la mia risposta si concentra sull'esecuzione di WSL Bash .
Abilita il sottosistema Windows per Linux sul tuo computer Windows 10.
Apri Visual Studio Code e tieni premuto Ctrl + `per aprire il terminale.
Aprire la tavolozza dei comandi utilizzando Ctrl + Shift + P.
Digitare - Select Default Shell
.
Selezionare WSL Bash
(NON Git Bash
) dalle opzioni.
+
sull'icona nella finestra del terminale. Il nuovo terminale ora sarà un terminale WSL Bash!Ultimo codice VS:
Ctrl+,
)edit in settings.json
. Fai clic e aggiungi"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
Il terminale Bash si rifletterà sul terminale.
Mi capita di consultarmi con un'azienda di Fortune 500 ed è purtroppo Windows 7 e nessun privilegio di amministratore. Quindi Node.js, Npm, Visual Studio Code, ecc. Sono stati trasferiti sulla mia macchina - non posso cambiare molto, ecc ...
Per questo computer con Windows 7:
Di seguito sono le mie nuove impostazioni. Quello che non funziona è commentato.
{
"update.channel": "none",
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
//"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe"
}
Ho provato le risposte sopra a partire dal vscode 1.42.1 e hanno funzionato in modo da procurarmi un terminale Git Bash. Quindi, linea di fondo questa impostazione funziona solo per l'apertura di una shell bash dal terminale:
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Tuttavia ha l'effetto collaterale indesiderato di essere anche la shell usata per costruire cose e che rompe la catena MS C ++ perché il \
carattere usato per il separatore di percorso è inteso da bash come carattere di escape. La correzione completa per me quindi mi ha richiesto di aggiungere questa variabile aggiuntiva, impostandola su PowerShell:
"terminal.integrated.automationShell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
Ora posso avere il mio terminale bash e Ctrl-Shift-B
oF5
lavorare senza problemi.
Oh, e come altri manifesti menzionati, la fonte di queste informazioni è la documentazione di VSCode .
Che dire di shell e code [args]
supporto distaccati o non correlati ?
Mentre altre risposte parlano di come configurare e utilizzare il bash
supporto del terminale WSL integrato VScode , non risolvono il problema delle "shell distaccate": shell che non sono state avviate da VScode o che in qualche modo vengono "disconnesse" dal server VScode istanza associata all'IDE.
Tali shell possono dare errori come:
Command is only available in WSL or inside a Visual Studio Code terminal.
o...
Unable to connect to VS Code server.
Error in request
Ecco uno script che semplifica la risoluzione di questo problema.
Lo uso quotidianamente per connettere shell in una tmux
sessione con un'istanza specifica del server VScode o per correggere una shell integrata che si stacca dal suo IDE di hosting.
#!/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"
Se hai già l' interfaccia della riga di comando "bash", "powershell" e "cmd" e hai le impostazioni di percorso corrette, puoi passare da una CLI a un'altra nei modi seguenti.
Ctrl+ ': Apre la finestra del terminale con l'interfaccia della riga di comando predefinita.
bash + enter: passa dalla CLI predefinita / corrente alla CLI bash .
powershell + enter: passa dalla CLI predefinita / corrente a powershell .
cmd + enter: passa dalla CLI predefinita / corrente alla CLI cmd .
La versione del codice VS che sto usando è 1.45.0