Windows üzerinde Visual Studio Code, varsayılan olarak tümleşik terminal olarak PowerShell kullanır. Bash'i Visual Studio Code'dan kullanmak istiyorsanız, hangi adımlar takip edilmelidir?
Windows üzerinde Visual Studio Code, varsayılan olarak tümleşik terminal olarak PowerShell kullanır. Bash'i Visual Studio Code'dan kullanmak istiyorsanız, hangi adımlar takip edilmelidir?
Yanıtlar:
Artık bash.exe yolunu el ile yazmanıza gerek yoktur. Bu cevap onaylanmadı. Şimdi doğrudan bash'a geçebilirsiniz. Git'in kurulu olduğundan emin olun.
Git'i https://git-scm.com/download/win adresinden yükleyin .
Sonra Visual Studio Code'u açın ve Ctrl+ Shift+ kullanarak komut paletini açın P. Ardından "kullanıcı ayarını aç" yazın ve açılır menüden "Kullanıcı Ayarlarını Aç" ı seçin.
Ardından bu sekme solda varsayılan ayarlarla ve sağda ayarlarınızla açılır:
Şimdi bu kod satırını kendi ayarlar sayfanıza (sağ taraftaki bölme) kopyalayın ve kaydedin -
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Not: dosyanın Git kurulumundan bulunduğu "C:\\Program Files\Git\bin\bash.exe"
yoldur bash.exe
. Linux için Windows Alt Sistemi (WSL) Bash kabuğunu kullanıyorsanız, yol"C:\Windows\System32\bash.exe"
Şimdi Ctrl+ tuşuna basarak `terminali Visual Studio Code'dan açın. Ve Bash'in olacak -
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\bin\bash.exe"
, terminal açılmıyordu. Denedim "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
. Benim için mükemmel çalıştı.
bash.exe
, değil git-bash.exe
. İkincisi VS kodu dışında bir terminali ayrı bir pencere olarak açarken VS kodu bash.exe
içinde çalışacaktır.
Git'i https://git-scm.com/download/win adresinden yükleyin.
Visual Studio Code'u açın ve terminali açmak için Ctrl+ tuşunu basılı tutun `.
Ctrl+ Shift+ Tuşlarını kullanarak komut paletini açın P.
Tür - Varsayılan Kabuğu Seç
Seçenekler arasından Git Bash'i seçin
Terminal penceresindeki + simgesine tıklayın
Yeni terminal şimdi bir Git Bash terminali olacak. Git Bash'i yüklemek için birkaç saniye verin
Artık farklı terminaller arasında ve terminaldeki açılır menüden geçiş yapabilirsiniz.
Güncellendi: Visual Studio Code'un daha yeni sürümlerinde , terminal açılır menüsünde Varsayılan Kabuğu Seç komutu bulunur:
Yalnızca% PATH% ortam değişkeninizdeki kabukları listelediğini unutmayın. Yolunuzda olmayan mermiler için diğer cevaplara bakın.
Ek ipucu: bash'ı başlattığınızda çalıştırılacaktır .bashrc
, eğer başlatma komutlarınız .bash_profile
varsa onu kopyalamanız gerekir .bashrc
. Conda ortamlarını kullanmak çok önemlidirGit .
Şimdi en kolay yol (en azından Visual Studio Code 1.22'den itibaren) Komut Paletini açmak için Shift+ Ctrl+ yazmak Pve şunu yazmaktır :
Select Default Shell
Şimdi kolaylıkla olanlar arasında tercih kabuk seçebilir yolunuzun bulundu :
% PATH% değerinde bulunmayan mermiler için diğer yanıtlara bakın.
Bkz tam Visual Studio Kod kabuk referansı . Etli bir sürü şey var.
Terminali açmak için Ctrl+ tuşunu basılı tutun `. Terminalde, terminalde bash
Git Bash'i kullanmak için yazın . Not: Makinenize Git Bash'in kurulu olduğundan emin olun.
PowerShell'i tekrar kullanmak isterseniz powershell
, terminali yazmanız yeterlidir. Windows komut satırını kullanmak için şunu yazıncmd
için terminali yazın.
Seçtiğiniz ayar varsayılan olarak kullanılacaktır.
exit
varsayılan kabuğun içinde çalışan bash kabuğunuzdan sonra powershell
bash powershell'in ne olduğunu bilmediğinden yazın.
Benim için aşağıdakiler işe yarayan tek kombinasyon!
"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 ile ...shell.windows
Bash her zaman Visual Studio dışında açıyordu!
Visual Studio Code'daki en son güncellemeler nedeniyle işler biraz değişti. Aşağıdaki adımlar benim için işe yarıyor.
Visual Studio Code komut damağını açmak için Ctrl+ Shift+ tuşlarına basın P.
Tip >preferences: Open Settings (JSON)
metin alanına.
Sağ bölmenizde görüntülenen JSON dosyasının sonuna aşağıdaki satırları ekleyin.
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Visual Studio Code örneğinizi kapatın ve yeniden açın.
Paul DeCarlo'dan bu öğreticiyi , Windows için Git Bash ile gelenler yerine Linux için Windows Alt Sisteminden (WSL) Bash'i kullanmak için izledim . Bunlar, yanıtta yukarıdaki adımlarla aynıdır, ancak Kullanıcı Ayarlarınızda aşağıdakileri kullanın.
"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe",
Bu benim için ilk kez işe yaradı ...
Bu, en azından benim için, Visual Studio Code'un harici bir terminal olarak yeni bir Bash penceresi açmasını sağlayacaktır.
Entegre ortam istiyorsanız , Git kurulumunuzun klasörü sh.exe
içindeki dosyayı işaret etmeniz gerekir bin
.
Bu yüzden yapılandırma söylemelidir C:\\<my-git-install>\\bin\\sh.exe
.
Git Bash'i yalnızca geçerli kullanıcıya mı yoksa tüm kullanıcılara mı yüklediğinize bağlıdır:
Tüm kullanıcılara yüklenmişse, "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Kullanıcı Ayarlarınızı ( Ctrl+ Comma) girin.
Yalnızca geçerli kullanıcıya yüklüyse, "terminal.integrated.shell.windows": "C:\\Users\\<name of your user>\\AppData\\Local\\Programs\\Git\\bin\\bash.exe"
Kullanıcı Ayarlarınızı ( Ctrl+ Comma) girin.
Yukarıda listelenen yöntemler işe yaramazsa, Christer'in çözümünü denemelisiniz -
Entegre ortam istiyorsanız,
sh.exe
içindeki dosyayı işaret etmeniz gerekir .bin
, Git kurulumunuzun klasörü .Bu yüzden yapılandırma söylemelidir
C:\\<my-git-install>\\bin\\sh.exe
.
Not: sh.exe ve bash.exe tamamen bana benziyor. Aralarında hiçbir fark olmamalıdır.
Git\bin
Dizini Path
ortam değişkenine ekleyin . Dizin %ProgramFiles%\Git\bin
varsayılan olarak. Bu şekilde Git Bash'e , Visual Studio Code'un tümleşik terminali de dahil olmak üzere her terminalde yazarak erişebilirsiniz bash
.
Zaten çok sayıda conda
ortam kurdumWSL
(Windows'ta Ubuntu'da Bash), bu yüzden Visual Studio Code'da aynı Bash kurulumunu kullanmak istedim.
Bunu yapmak için, sadece (bu özel Bash yürütülebilir yolunu belirtmek zorunda yerine aitGit-Bash
Visual Studio Kodu ayarlarına):
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\bash.exe"
Not : Ubuntu on Bash yürütülebilir dosyanızın Windows makinenize nerede yüklendiğinden emin olmak için, Command prompt
(search :) öğesini açın cmd
ve çalıştırın:
where bash.exe
Bu cevap en çok oy alan cevaba benzer, ancak önemli bir ayrımla: bu soruya ilişkin önceki cevapların çoğu Git Bash'ı çalıştırırken, cevabım WSL Bash'ı çalıştırmaya odaklanıyor .
Windows 10 makinenizde Linux için Windows Alt Sistemini etkinleştirin.
Visual Studio Code'u Ctrl + `açın ve terminali açmak için basılı tutun .
Komut paletini kullanarak açın Ctrl + Shift + P.
Türü - Select Default Shell
.
Seçeneklerden WSL Bash
(DEĞİL Git Bash
) öğesini seçin .
+
Terminal penceresindeki simgeye tıklayın . Yeni terminal şimdi bir WSL Bash terminali olacak!En son VS kodu:
Ctrl+,
)edit in settings.json
. Tıkla ve ekle"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
Bash terminali terminale yansır.
Bir Fortune 500 şirketi için danışmanlık yapıyorum ve ne yazık ki Windows 7 ve yönetici ayrıcalıkları yok. Böylece Node.js, Npm, Visual Studio Code, vb .. makineme itildi - Ben çok değiştiremem, vb ...
Windows 7 çalıştıran bu bilgisayar için:
Aşağıda yeni ayarlarım var. Çalışmayan biri yorumlanır.
{
"update.channel": "none",
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
//"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe"
}
Yukarıdaki cevapları vscode 1.42.1 denedim ve bana bir git bash terminali almak için çalıştı. Yani, alt satırda bu ayar sadece terminalden bir bash kabuğu açmak için çalışır:
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Bununla birlikte, bazı şeyleri oluşturmak için kullanılan kabuk olmasının ve MS C ++ zincirini kırmanın istenmeyen yan etkisi vardır, çünkü \
yol ayırıcı için kullanılan karakter bash tarafından bir kaçış karakteri olarak anlaşılır. Benim için tam düzeltme daha sonra bu ekstra değişkeni eklemem ve bunu powershell olarak ayarlamamı gerektirdi:
"terminal.integrated.automationShell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
Şimdi, bash terminalimi alabilir ve / Ctrl-Shift-B
veya F5
sorunsuz çalışabilirim.
Oh, ve diğer posterlerde belirtildiği gibi, bu bilgilerin kaynağı VSCode'un dokümanlarıdır .
Ayrılmış veya ilgisiz mermiler ve code [args]
destek ne olacak?
Diğer yanıtlar VScode entegre WSL bash
terminal desteğinin nasıl yapılandırılacağı ve kullanılacağı hakkında konuşurken , "ayrılmış kabuklar" sorununu çözmezler: VScode içinden başlatılmayan veya bir şekilde VScode sunucusundan "bağlantısı kesilen" kabuklar IDE ile ilişkilendirilmiş örnek.
Bu tür kabuklar aşağıdaki gibi hatalar verebilir:
Command is only available in WSL or inside a Visual Studio Code terminal.
veya...
Unable to connect to VS Code server.
Error in request
İşte bu sorunu çözmeyi kolaylaştıran bir komut dosyası .
Bu günlük tmux
belirli bir VScode sunucu örneği ile bir oturumda kabukları bağlamak veya barındırma IDE ayrılmış bir entegre kabuk düzeltmek için kullanın.
#!/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"
Zaten "bash", "powershell" ve "cmd" CLI'larınız varsa ve doğru yol ayarlarına sahipseniz, bir CLI'den diğerine geçmek aşağıdaki yollarla yapılabilir.
Ctrl+ ': Terminal penceresini varsayılan CLI ile açar.
bash + enter: Varsayılan / geçerli CLI'nizden bash CLI'ya geçin .
powershell + enter: Varsayılan / geçerli CLI'nizden powershell CLI'ya geçin .
cmd + enter: Varsayılan / geçerli CLI'nizden cmd CLI'ya geçin .
Kullandığım VS Kod Sürümü 1.45.0