Visual Studio Code sous Windows utilise PowerShell par défaut comme terminal intégré. Si vous souhaitez utiliser Bash à partir de Visual Studio Code, quelles étapes doivent être suivies?
Visual Studio Code sous Windows utilise PowerShell par défaut comme terminal intégré. Si vous souhaitez utiliser Bash à partir de Visual Studio Code, quelles étapes doivent être suivies?
Réponses:
Vous n'avez plus besoin de taper manuellement le chemin bash.exe. Cette réponse est obsolète. Vous pouvez maintenant passer directement à bash. Assurez-vous simplement que git est installé.
Installez Git depuis https://git-scm.com/download/win .
Ouvrez ensuite Visual Studio Code et ouvrez la palette de commandes à l'aide de Ctrl+ Shift+ P. Tapez ensuite "Ouvrir les paramètres utilisateur", puis sélectionnez "Ouvrir les paramètres utilisateur" dans le menu déroulant.
Ensuite, cet onglet s'ouvrira avec les paramètres par défaut à gauche et vos paramètres à droite:
Maintenant, copiez cette ligne de code sur votre propre page de paramètres (le volet de droite) et enregistrez -
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Remarque: "C:\\Program Files\Git\bin\bash.exe"
est le chemin d'accès au bash.exe
fichier depuis l'installation de Git. Si vous utilisez le shell Bash du sous-système Windows pour Linux (WSL), le chemin d'accès serait"C:\Windows\System32\bash.exe"
Appuyez maintenant sur Ctrl+ `pour ouvrir le terminal à partir de Visual Studio Code. Et vous aurez Bash -
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\bin\bash.exe"
, le terminal n'ouvrait pas. J'ai essayé "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
. A parfaitement fonctionné pour moi.
bash.exe
, et non git-bash.exe
. Ce dernier ouvrira un terminal en dehors du code VS dans une fenêtre distincte, tandis bash.exe
qu'il s'exécutera à l'intérieur du code VS.
Installez Git depuis https://git-scm.com/download/win
Ouvrez Visual Studio Code et maintenez la touche Ctrl+ enfoncée `pour ouvrir le terminal.
Ouvrez la palette de commandes à l'aide de Ctrl+ Shift+ P.
Type - Sélectionnez Shell par défaut
Sélectionnez Git Bash parmi les options
Cliquez sur l'icône + dans la fenêtre du terminal
Le nouveau terminal sera désormais un terminal Git Bash. Donnez-lui quelques secondes pour charger Git Bash
Vous pouvez désormais basculer entre les différents terminaux ainsi que dans la liste déroulante du terminal.
Mise à jour: les versions plus récentes de Visual Studio Code ont la commande Select Default Shell dans le menu déroulant du terminal:
N'oubliez pas qu'il répertorie simplement les shells qui se trouvent dans votre variable d'environnement% PATH%. Pour les obus qui ne se trouvent pas sur votre chemin, consultez les autres réponses.
Astuce supplémentaire: lorsque vous démarrez bash, il s'exécutera simplement.Si .bashrc
vous avez des commandes d'initialisation, .bash_profile
vous devez les copier .bashrc
. C'est essentiel pour utiliser les environnements Conda dans Git Bash.
La façon la plus simple maintenant (au moins à partir de Visual Studio Code 1.22) est de taper Shift+ Ctrl+ Ppour ouvrir la palette de commandes et de taper:
Select Default Shell
Maintenant, vous pouvez facilement sélectionner votre shell préféré parmi ceux trouvés sur votre chemin :
Pour les shells qui ne sont pas dans votre% PATH%, consultez les autres réponses.
Voir la référence complète du shell Visual Studio Code . Il y a beaucoup de choses charnues.
Appuyez et maintenez Ctrl+ `pour ouvrir le terminal. À l'intérieur du terminal, tapez bash
pour utiliser Git Bash dans le terminal. Remarque: assurez-vous que Git Bash est installé sur votre ordinateur.
Si vous souhaitez utiliser à nouveau PowerShell, tapez simplement powershell
le terminal. Pour utiliser la ligne de commande Windows, saisissez cmd
le terminal.
Le paramètre que vous choisissez sera utilisé par défaut.
exit
depuis votre shell bash exécuté à l'intérieur du shell par défaut, puis tapez powershell
car bash ne sait pas ce qu'est le PowerShell.
Pour moi, ce qui suit est la seule combinaison qui fonctionne!
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\git-cmd.exe",
"terminal.integrated.shellArgs.windows": [
"--command=usr/bin/bash.exe",
"-l",
"-i"
]
Avec git-bash.exe comme ...shell.windows
, chaque fois que Bash ouvrait en dehors de Visual Studio !!
Les choses ont un peu changé en raison des dernières mises à jour sur Visual Studio Code. Les étapes suivantes fonctionnent pour moi.
Appuyez sur Ctrl+ Shift+ Ppour ouvrir la palette de commandes Visual Studio Code.
Tapez >preferences: Open Settings (JSON)
dans la zone de texte.
Ajoutez les lignes suivantes à la fin du fichier JSON qui s'affiche dans votre volet droit.
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Fermez et rouvrez votre instance de Visual Studio Code.
J'ai suivi ce tutoriel de Paul DeCarlo pour utiliser le Bash du sous-système Windows pour Linux (WSL) au lieu de ce qui vient avec Git Bash pour Windows. Ce sont les mêmes étapes que ci-dessus dans la réponse, mais utilisez plutôt les ci-dessous dans vos paramètres utilisateur.
"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe",
Cela a fonctionné pour moi la première fois ... ce qui est rare pour ce genre de choses.
Cela, au moins pour moi, fera que Visual Studio Code ouvre une nouvelle fenêtre Bash en tant que terminal externe.
Si vous voulez l'environnement intégré, vous devez pointer vers le sh.exe
fichier dans le bin
dossier de votre installation Git.
Donc, la configuration devrait dire C:\\<my-git-install>\\bin\\sh.exe
.
Cela dépend si vous avez installé Git Bash dans l'utilisateur actuel uniquement ou dans tous les utilisateurs:
S'il est installé sur tous les utilisateurs, insérez "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
vos paramètres utilisateur ( Ctrl+ Comma).
S'il n'est installé que sur l'utilisateur actuel, insérez "terminal.integrated.shell.windows": "C:\\Users\\<name of your user>\\AppData\\Local\\Programs\\Git\\bin\\bash.exe"
vos paramètres utilisateur ( Ctrl+ Comma).
Si les méthodes énumérées ci-dessus ne fonctionnent pas, vous devriez essayer la solution de Christer qui dit -
Si vous voulez l'environnement intégré, vous devez pointer vers le
sh.exe
fichier dans lebin
dossier de votre installation Git.Donc, la configuration devrait dire
C:\\<my-git-install>\\bin\\sh.exe
.
Remarque: les sh.exe et bash.exe m'apparaissent complètement identiques. Il ne devrait pas y avoir de différence entre eux.
Ajoutez le Git\bin
répertoire à la Path
variable d'environnement. Le répertoire est %ProgramFiles%\Git\bin
par défaut. De cette façon, vous pouvez accéder à Git Bash en tapant simplement bash
chaque terminal, y compris le terminal intégré de Visual Studio Code.
Comment définir le chemin d'accès et les variables d'environnement dans Windows
J'avais déjà configuré beaucoup d' conda
environnements WSL
(Bash sur Ubuntu sous Windows), donc je voulais utiliser la même installation Bash sur Visual Studio Code.
Pour ce faire, je devais simplement spécifier le chemin de cet exécutable Bash particulier ( au lieu deGit-Bash
) dans les paramètres de Visual Studio Code:
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\bash.exe"
PS : pour vous assurer que votre exécutable Ubuntu on Bash est installé sur votre machine Windows, ouvrez la Command prompt
(recherche:) cmd
et exécutez:
where bash.exe
Cette réponse est similaire à la réponse la plus votée, mais avec une distinction importante: la plupart des réponses précédentes à cette question se concentrent sur l'exécution de Git Bash tandis que ma réponse se concentre sur l'exécution de WSL Bash .
Activez le sous-système Windows pour Linux sur votre ordinateur Windows 10.
Ouvrez Visual Studio Code et maintenez enfoncé Ctrl + `pour ouvrir le terminal.
Ouvrez la palette de commandes à l'aide de Ctrl + Shift + P.
Tapez - Select Default Shell
.
Sélectionnez WSL Bash
(NON Git Bash
) parmi les options.
+
icône dans la fenêtre du terminal. Le nouveau terminal sera désormais un terminal WSL Bash!Dernier code VS:
Ctrl+,
)edit in settings.json
. Cliquez et ajoutez"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
Le terminal Bash réfléchira sur le terminal.
Il se trouve que je suis consultant pour une entreprise Fortune 500 et que c'est malheureusement Windows 7 et aucun privilège d'administrateur. Ainsi Node.js, Npm, Visual Studio Code, etc. ont été poussés sur ma machine - je ne peux pas changer grand chose, etc ...
Pour cet ordinateur exécutant Windows 7:
Voici mes nouveaux paramètres. Celui qui ne fonctionne pas est commenté.
{
"update.channel": "none",
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
//"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe"
}
J'ai essayé les réponses ci-dessus à partir de vscode 1.42.1 et elles ont fonctionné pour me procurer un terminal git bash. Donc, en fin de compte, ce paramètre fonctionne uniquement pour ouvrir un shell bash à partir du terminal:
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Cependant, il a l'effet secondaire indésirable d'être également le shell utilisé pour construire des choses et qui rompt la chaîne MS C ++ car le \
caractère utilisé pour le séparateur de chemin est compris par bash comme un caractère d'échappement. Le correctif complet pour moi m'a alors obligé à ajouter cette variable supplémentaire, en la définissant sur PowerShell:
"terminal.integrated.automationShell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
Maintenant, je peux avoir mon terminal bash et / Ctrl-Shift-B
ou F5
travailler sans problème.
Oh, et comme d'autres affiches l'ont mentionné, la source de ces informations est la documentation de VSCode .
Qu'en est-il des obus détachés ou non liés et code [args]
support ?
Alors que d'autres réponses parlent de la façon de configurer et d'utiliser la prise en bash
charge du terminal WSL intégré VScode , elles ne résolvent pas le problème des "shells détachés": shells qui n'ont pas été lancés à partir de VScode, ou qui sont en quelque sorte "déconnectés" du serveur VScode instance associée à l'IDE.
De tels obus peuvent donner des erreurs comme:
Command is only available in WSL or inside a Visual Studio Code terminal.
ou...
Unable to connect to VS Code server.
Error in request
Voici un script qui facilite la résolution de ce problème.
J'utilise cela quotidiennement pour connecter des shells dans une tmux
session avec une instance de serveur VScode spécifique, ou pour réparer un shell intégré qui s'est détaché de son IDE d'hébergement.
#!/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 vous avez déjà des CLI "bash", "powershell" et "cmd" et que vous avez des paramètres de chemin d'accès corrects, le basculement d'une CLI à une autre peut se faire par les moyens suivants.
Ctrl+ ': Ouvre la fenêtre du terminal avec CLI par défaut.
bash + enter: passer de votre CLI par défaut / actuelle à la CLI bash .
powershell + enter: basculez de votre CLI par défaut / actuelle vers la CLI powershell .
cmd + enter: basculez de votre CLI par défaut / actuelle vers la CLI cmd .
La version du code VS que j'utilise est 1.45.0