Visual Studio Code en Windows usa PowerShell de manera predeterminada como terminal integrado. Si desea utilizar Bash desde Visual Studio Code, ¿qué pasos se deben seguir?
Visual Studio Code en Windows usa PowerShell de manera predeterminada como terminal integrado. Si desea utilizar Bash desde Visual Studio Code, ¿qué pasos se deben seguir?
Respuestas:
Ya no necesita escribir la ruta bash.exe manualmente. Esta respuesta está en desuso. Ahora puedes cambiar a bash directamente. Solo asegúrate de tener instalado git.
Instale Git desde https://git-scm.com/download/win .
Luego abra Visual Studio Code y abra la paleta de comandos usando Ctrl+ Shift+ P. Luego escriba "abrir configuración de usuario" y luego seleccione "Abrir configuración de usuario" en el menú desplegable.
Luego, esta pestaña se abrirá con la configuración predeterminada a la izquierda y su configuración a la derecha:
Ahora copie esta línea de código en su propia página de configuración (el panel en el lado derecho) y guarde:
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Nota: "C:\\Program Files\Git\bin\bash.exe"
es la ruta donde bash.exe
se encuentra el archivo desde la instalación de Git. Si está utilizando el shell Bash del subsistema de Windows para Linux (WSL), la ruta sería"C:\Windows\System32\bash.exe"
Ahora presione Ctrl+ `para abrir el terminal desde Visual Studio Code. Y tendrás Bash -
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\bin\bash.exe"
terminal no se abría. Intentado "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
. Funcionó perfectamente para mí.
bash.exe
, y no git-bash.exe
. Este último abrirá una terminal fuera del código VS como una ventana separada, mientras que bash.exe
se ejecutará dentro del código VS.
Instale Git desde https://git-scm.com/download/win
Abra Visual Studio Code y mantenga presionado Ctrl+ `para abrir el terminal.
Abra la paleta de comandos usando Ctrl+ Shift+ P.
Tipo: seleccione Shell predeterminado
Seleccione Git Bash de las opciones.
Haga clic en el ícono + en la ventana del terminal
La nueva terminal ahora será una terminal de Git Bash. Dale unos segundos para cargar Git Bash
Ahora puede alternar entre las diferentes terminales también desde el menú desplegable en la terminal.
Actualizado: las versiones más nuevas de Visual Studio Code tienen el comando Seleccionar shell predeterminado en el menú desplegable del terminal:
Recuerde que solo enumera los shells que están en su variable de entorno% PATH%. Para los proyectiles que no están en su camino, vea otras respuestas.
Consejo adicional: cuando comiences bash, simplemente se ejecutará .bashrc
, si tienes comandos de inicialización .bash_profile
debes copiarlo .bashrc
. Es esencial para usar entornos Conda en Git Bash.
La forma más fácil ahora (al menos desde Visual Studio Code 1.22 en adelante) es escribir Shift+ Ctrl+ Ppara abrir la Paleta de comandos y escribir:
Select Default Shell
Ahora puede seleccionar fácilmente su shell preferido entre los que se encuentran en su ruta :
Para los shells que no están en su% PATH%, vea las otras respuestas.
Consulte la referencia completa del shell de Visual Studio Code . Hay muchas cosas carnosas.
Mantenga presionado Ctrl+ `para abrir el terminal. Dentro de la terminal, escriba bash
para usar Git Bash en la terminal. Nota: Asegúrese de tener Git Bash instalado en su máquina.
Si desea volver a usar PowerShell, simplemente escriba powershell
el terminal. Para usar la línea de comandos de Windows, escriba cmd
la terminal.
La configuración que elija se usará como predeterminada.
exit
desde su shell bash que se ejecuta dentro del shell predeterminado, luego escriba powershell
ya que bash no sabe qué es Powershell.
¡Para mí, la siguiente es la única combinación que funciona!
"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 como ...shell.windows
, cada vez que Bash se abría fuera de Visual Studio!
Las cosas han cambiado un poco debido a las últimas actualizaciones en Visual Studio Code. Los siguientes pasos me funcionan.
Presione Ctrl+ Shift+ Ppara abrir el paladar de comandos de Visual Studio Code.
Escriba >preferences: Open Settings (JSON)
en el área de texto.
Agregue las siguientes líneas al final del archivo JSON que se muestra en el panel derecho.
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Cierre y vuelva a abrir su instancia de Visual Studio Code.
Seguí este tutorial de Paul DeCarlo para usar el Bash del subsistema de Windows para Linux (WSL) en lugar de lo que viene con Git Bash para Windows. Son los mismos pasos que los anteriores en la respuesta, pero en su lugar use los siguientes en su Configuración de usuario.
"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe",
Esto funcionó para mí la primera vez ... lo cual es raro para estas cosas.
Esto, al menos para mí, hará que Visual Studio Code abra una nueva ventana Bash como terminal externo.
Si desea el entorno integrado, debe apuntar al sh.exe
archivo dentro de la bin
carpeta de su instalación de Git.
Entonces la configuración debería decir C:\\<my-git-install>\\bin\\sh.exe
.
Depende de si ha instalado Git Bash solo en el usuario actual o en todos los usuarios:
Si está instalado en todos los usuarios, ingrese "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
su Configuración de usuario ( Ctrl+ Comma).
Si está instalado solo en el usuario actual, ingrese "terminal.integrated.shell.windows": "C:\\Users\\<name of your user>\\AppData\\Local\\Programs\\Git\\bin\\bash.exe"
su Configuración de usuario ( Ctrl+ Comma).
Si los métodos enumerados anteriormente no funcionan, entonces debe probar la solución de Christer que dice:
Si desea el entorno integrado, debe apuntar al
sh.exe
archivo dentro de labin
carpeta de su instalación de Git.Entonces la configuración debería decir
C:\\<my-git-install>\\bin\\sh.exe
.
Nota: El sh.exe y bash.exe me parecen completamente iguales. No debería haber diferencia entre ellos.
Agregue el Git\bin
directorio a la Path
variable de entorno. El directorio es %ProgramFiles%\Git\bin
por defecto. De esta manera, puede acceder a Git Bash con solo escribir bash
en cada terminal, incluido el terminal integrado de Visual Studio Code.
Cómo configurar la ruta y las variables de entorno en Windows
Ya había configurado muchos conda
entornos enWSL
(Bash en Ubuntu en Windows), por lo que quería usar la misma instalación de Bash en Visual Studio Code.
Para hacer eso, solo tenía que especificar la ruta de este ejecutable Bash en particular (en lugar deGit-Bash
) en la configuración de Visual Studio Code:
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\bash.exe"
PD : para asegurarte de dónde está instalado tu ejecutable Ubuntu en Bash en tu máquina Windows, abre Command prompt
(search:) cmd
y ejecuta:
where bash.exe
Esta respuesta es similar a la respuesta más votada, pero con una distinción importante: muchas de las respuestas anteriores a esta pregunta se centran en ejecutar Git Bash, mientras que mi respuesta se centra en ejecutar WSL Bash .
Habilite el Subsistema de Windows para Linux en su máquina con Windows 10.
Abra Visual Studio Code y mantenga presionado Ctrl + `para abrir el terminal.
Abra la paleta de comandos usando Ctrl + Shift + P.
Escriba - Select Default Shell
.
Seleccione WSL Bash
(NO Git Bash
) de las opciones.
+
icono en la ventana del terminal. ¡La nueva terminal ahora será una terminal WSL Bash!Último código VS:
Ctrl+,
)edit in settings.json
. Haz clic y agrega"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
Bash terminal se reflejará en la terminal.
Estoy consultando para una compañía Fortune 500 y lamentablemente es Windows 7 y no tiene privilegios de administrador. Por lo tanto, Node.js, Npm, Visual Studio Code, etc. fueron empujados a mi máquina; no puedo cambiar mucho, etc.
Para esta computadora con Windows 7:
A continuación están mis nuevas configuraciones. El que no funciona está comentado.
{
"update.channel": "none",
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
//"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe"
}
Intenté las respuestas anteriores a partir de vscode 1.42.1 y funcionaron en la medida en que me dieron un terminal git bash. Entonces, en resumen, esta configuración funciona solo para abrir un bash shell desde la terminal:
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Sin embargo, tiene el efecto secundario no deseado de ser también el shell utilizado para construir cosas y eso rompe la cadena MS C ++ porque \
bash entiende el carácter utilizado para el separador de ruta como un carácter de escape. La solución completa para mí luego me requirió agregar esta variable adicional, configurándola en powershell:
"terminal.integrated.automationShell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
Ahora, puedo tener mi terminal bash y / Ctrl-Shift-B
o F5
trabajar sin problemas.
Ah, y como se mencionó en otros carteles, la fuente de esta información es la documentación de VSCode .
¿Qué pasa con los depósitos separados o no relacionados y code [args]
soporte ?
Mientras que otras respuestas hablan sobre cómo configurar y usar el bash
soporte de terminal WSL integrado de VScode , no resuelven el problema de los "shells separados": shells que no se lanzaron desde VScode, o que de alguna manera se "desconectan" del servidor VScode instancia asociada con el IDE.
Tales proyectiles pueden dar errores como:
Command is only available in WSL or inside a Visual Studio Code terminal.
o...
Unable to connect to VS Code server.
Error in request
Aquí hay un guión que facilita la resolución de este problema.
Lo uso a diario para conectar shells en una tmux
sesión con una instancia de servidor VScode específica, o para arreglar un shell integrado que se separó de su IDE de alojamiento.
#!/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"
Si ya tiene CLI "bash", "powershell" y "cmd" y tiene la configuración de ruta correcta, puede cambiar de una CLI a otra de las siguientes maneras.
Ctrl+ ': Abre la ventana de terminal con la CLI predeterminada.
bash + enter: cambie de su CLI predeterminada / actual a bash CLI.
powershell + enter: cambie de su CLI predeterminada / actual a la CLI de powershell .
cmd + enter: cambie de su CLI predeterminada / actual a cmd CLI.
La versión del código VS que estoy usando es 1.45.0