Visual Studio Code บน Windows ใช้ PowerShell เป็นค่าเริ่มต้นเป็นเทอร์มินัลรวม หากคุณต้องการใช้ Bash จาก Visual Studio Code ควรทำตามขั้นตอนอะไรบ้าง
Visual Studio Code บน Windows ใช้ PowerShell เป็นค่าเริ่มต้นเป็นเทอร์มินัลรวม หากคุณต้องการใช้ Bash จาก Visual Studio Code ควรทำตามขั้นตอนอะไรบ้าง
คำตอบ:
คุณไม่จำเป็นต้องพิมพ์ในพา ธ bash.exe ด้วยตนเองอีกต่อไป คำตอบนี้เลิกใช้แล้ว ตอนนี้คุณสามารถเปลี่ยนไปใช้ทุบตีโดยตรง เพียงตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งคอมไพล์แล้ว
ติดตั้ง Git จากhttps://git-scm.com/download/win
จากนั้นเปิด Visual Studio รหัสและเปิดจานคำสั่งโดยใช้Ctrl+ +Shift Pจากนั้นพิมพ์ "การตั้งค่าผู้ใช้เปิด" แล้วเลือก "การตั้งค่าผู้ใช้เปิด" จากเมนูแบบเลื่อนลง
จากนั้นแท็บนี้จะเปิดขึ้นพร้อมการตั้งค่าเริ่มต้นด้านซ้ายและการตั้งค่าของคุณทางด้านขวา:
ตอนนี้คัดลอกบรรทัดของรหัสนี้ไปยังหน้าการตั้งค่าของคุณเอง (บานหน้าต่างด้านขวามือ) และบันทึก -
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
หมายเหตุ: "C:\\Program Files\Git\bin\bash.exe"
เป็นเส้นทางที่bash.exe
ไฟล์นั้นอยู่จากการติดตั้ง Git หากคุณกำลังใช้เชลล์ระบบย่อย Windows สำหรับ Linux (WSL) Bash พา ธ จะเป็นเช่นนั้น"C:\Windows\System32\bash.exe"
ตอนนี้กดCtrl+ `เพื่อเปิด terminal จาก Visual Studio Code และคุณจะมี Bash -
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\bin\bash.exe"
เทอร์มินัลไม่ได้เปิด "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
พยายาม ทำงานอย่างสมบูรณ์แบบสำหรับฉัน
bash.exe
git-bash.exe
หลังจะเปิดเทอร์มินัลนอกรหัส VS เป็นหน้าต่างแยกต่างหากในขณะที่bash.exe
จะทำงานภายในรหัส VS
ติดตั้ง Git จากhttps://git-scm.com/download/win
เปิด Visual Studio Code แล้วกดCtrl+ ค้างไว้`เพื่อเปิดเครื่อง
เปิดจานคำสั่งโดยใช้Ctrl+ +ShiftP
ประเภท - เลือกเชลล์เริ่มต้น
เลือก Git Bash จากตัวเลือก
คลิกที่ไอคอน + ในหน้าต่างเทอร์มินัล
เทอร์มินัลใหม่จะเป็นเทอร์มินัล Git Bash ใช้เวลาสักครู่เพื่อโหลด Git Bash
ตอนนี้คุณสามารถสลับไปมาระหว่างเทอร์มินัลต่างๆเช่นกันจากดรอปดาวน์ในเทอร์มินัล
อัปเดต: Visual Studio Code เวอร์ชันใหม่กว่ามีคำสั่งSelect Default Shellในเมนูพูลดาวน์เทอร์มินัล:
จำไว้ว่ามันเป็นเพียงแค่แสดงรายการเชลล์ที่อยู่ในตัวแปรสภาพแวดล้อม% PATH% ของคุณ สำหรับกระสุนที่ไม่ได้อยู่ในเส้นทางของคุณดูคำตอบอื่น ๆ
เคล็ดลับเสริม: เมื่อคุณเริ่มทุบตีมันก็จะดำเนินการ.bashrc
ถ้าคุณมีการเตรียมใช้คำสั่งในการที่คุณจะต้องคัดลอกไป.bash_profile
.bashrc
มันจำเป็นสำหรับการใช้สภาพแวดล้อมของ Condaใน Git Bash
วิธีที่ง่ายที่สุดในขณะนี้ (อย่างน้อยจาก Visual Studio Code 1.22 เปิด) คือการพิมพ์Shift+ Ctrl+ Pเพื่อเปิดCommand Paletteและพิมพ์:
Select Default Shell
ตอนนี้คุณสามารถเลือกเชลล์ที่คุณต้องการระหว่างสิ่งที่พบในเส้นทางของคุณ :
สำหรับเชลล์ที่ไม่ได้อยู่ใน% PATH% ของคุณดูคำตอบอื่น ๆ
ดูการอ้างอิงเชลล์ Visual Studio Code ที่สมบูรณ์ มีหลายสิ่งที่เป็นเนื้อ
กดCtrl+ ค้างไว้`เพื่อเปิดเครื่อง ภายในเทอร์มินัลพิมพ์bash
เพื่อใช้ Git Bash ในเทอร์มินัล หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Git Bash ในเครื่องของคุณ
หากคุณต้องการใช้ PowerShell อีกครั้งเพียงแค่พิมพ์powershell
เทอร์มินัล หากต้องการใช้บรรทัดคำสั่ง Windows ให้พิมพ์cmd
เทอร์มินัล
การตั้งค่าที่คุณเลือกจะถูกใช้เป็นค่าเริ่มต้น
exit
จาก bash shell ที่อยู่ในเชลล์เริ่มต้นจากนั้นพิมพ์powershell
เนื่องจาก bash ไม่ทราบว่า PowerShell คืออะไร
สำหรับฉันแล้วชุดต่อไปนี้ใช้งานได้เท่านั้น!
"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 ในฐานะ...shell.windows
Bash ทุกครั้งที่เปิดนอก Visual Studio !!
สิ่งต่าง ๆ มีการเปลี่ยนแปลงเล็กน้อยเนื่องจากการปรับปรุงล่าสุดใน Visual Studio Code ขั้นตอนต่อไปนี้ใช้ได้สำหรับฉัน
กดCtrl+ Shift+ Pเพื่อเปิดเพดานคำสั่ง Visual Studio Code
พิมพ์>preferences: Open Settings (JSON)
ในพื้นที่ข้อความ
เพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์ JSON ซึ่งแสดงในบานหน้าต่างด้านขวาของคุณ
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
ปิดและเปิดอินสแตนซ์ของรหัส Visual Studio ของคุณอีกครั้ง
ฉันติดตามบทเรียนนี้จาก Paul DeCarlo เพื่อใช้ Bash จากระบบย่อย Windows สำหรับ Linux (WSL) แทนสิ่งที่มาพร้อมกับ Git Bash สำหรับ Windows เป็นขั้นตอนเดียวกับข้างต้นในคำตอบ แต่ใช้ด้านล่างในการตั้งค่าผู้ใช้ของคุณแทน
"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe",
สิ่งนี้ใช้ได้กับฉันในครั้งแรก ... ซึ่งหายากสำหรับสิ่งนี้
อย่างน้อยสำหรับฉันนี้จะทำให้ Visual Studio Code เปิดหน้าต่าง Bash ใหม่เป็นเทอร์มินัลภายนอก
หากคุณต้องการสภาพแวดล้อมแบบรวมคุณจะต้องชี้ไปที่sh.exe
ไฟล์ภายในbin
โฟลเดอร์ของการติดตั้ง Git ของคุณ
C:\\<my-git-install>\\bin\\sh.exe
ดังนั้นการกำหนดค่าควรจะพูดว่า
ขึ้นอยู่กับว่าคุณได้ติดตั้ง Git Bash ในผู้ใช้ปัจจุบันเท่านั้นหรือผู้ใช้ทั้งหมด:
หากมีการติดตั้งกับผู้ใช้ทุกคนให้ใส่"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
การตั้งค่าผู้ใช้ของคุณ ( Ctrl+ Comma)
หากมีการติดตั้งเฉพาะผู้ใช้ปัจจุบันให้ใส่"terminal.integrated.shell.windows": "C:\\Users\\<name of your user>\\AppData\\Local\\Programs\\Git\\bin\\bash.exe"
การตั้งค่าผู้ใช้ของคุณ ( Ctrl+ Comma)
หากวิธีการข้างต้นไม่ทำงานคุณควรลองวิธีแก้ปัญหาของ Christerซึ่งระบุว่า -
หากคุณต้องการสภาพแวดล้อมแบบรวมคุณจะต้องชี้ไปที่
sh.exe
ไฟล์ภายในbin
โฟลเดอร์ของการติดตั้ง Git ของคุณ
C:\\<my-git-install>\\bin\\sh.exe
ดังนั้นการกำหนดค่าควรจะพูดว่า
หมายเหตุ: sh.exe และ bash.exe นั้นจะเหมือนกันทั้งหมดกับฉัน ไม่ควรมีความแตกต่างระหว่างพวกเขา
เพิ่มGit\bin
ไดเร็กทอรีให้กับPath
ตัวแปรสภาวะแวดล้อม ไดเรกทอรีเป็น%ProgramFiles%\Git\bin
ค่าเริ่มต้น ด้วยวิธีนี้คุณสามารถเข้าถึง Git Bash ด้วยการพิมพ์ bash
ในทุกเทอร์มินัลรวมถึงเทอร์มินัลรวมของ Visual Studio Code
ฉันได้ตั้งค่าconda
สภาพแวดล้อมมากมายบนWSL
(Bash บน Ubuntu บน Windows) ดังนั้นฉันต้องการใช้การติดตั้ง Bash เดียวกันกับ Visual Studio Code
ต้องการทำเช่นนั้นฉันเพิ่งมีการระบุเส้นทางของการปฏิบัติการทุบตีนี้โดยเฉพาะ (คนแทนของGit-Bash
) กับการตั้งค่า Visual Studio ของรหัส:
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\bash.exe"
PS : เพื่อให้แน่ใจว่าอูบุนตูของคุณติดตั้งโปรแกรมปฏิบัติการ Bash บนเครื่อง Windows ของคุณเปิดCommand prompt
(ค้นหา:) cmd
และเรียกใช้:
where bash.exe
คำตอบนี้จะคล้ายกับด้านบนลงมติคำตอบ แต่มีความแตกต่างที่สำคัญมากคำตอบก่อนหน้านี้เกี่ยวกับคำถามนี้มุ่งเน้นในการเรียกใช้Git ทุบตีในขณะที่คำตอบของฉันมุ่งเน้นไปที่การทำงานWSL ทุบตี
เปิดใช้งาน Windows Subsystem สำหรับ Linux บนเครื่อง Windows 10 ของคุณ
เปิด Visual Studio Code แล้วกดค้างCtrl + `เพื่อเปิดเทอร์มินัล
Ctrl + Shift + Pเปิดจานคำสั่งโดยใช้
พิมพ์ Select Default Shell
-
เลือกWSL Bash
(ไม่Git Bash
) จากตัวเลือก
+
ไอคอนในหน้าต่างเทอร์มินัล เทอร์มินัลใหม่ตอนนี้จะเป็นเทอร์มินัล WSL Bash!รหัส VS ล่าสุด:
Ctrl+,
)edit in settings.json
ส่วนเทอร์มิปรากฏเห็นการเชื่อมโยง คลิกและเพิ่ม"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
ขั้ว Bash จะสะท้อนที่ขั้ว
ฉันบังเอิญได้รับคำปรึกษาจากบริษัท Fortune 500และเป็นเรื่องเศร้าที่Windows 7และไม่มีสิทธิ์ของผู้ดูแลระบบ ดังนั้น Node.js, Npm, Visual Studio Code ฯลฯ ถูกผลักไปยังเครื่องของฉัน - ฉันไม่สามารถเปลี่ยนอะไรได้มากมาย ...
สำหรับคอมพิวเตอร์เครื่องนี้ที่ใช้ Windows 7:
ด้านล่างเป็นการตั้งค่าใหม่ของฉัน คนที่ไม่ทำงานนั้นถูกคอมเม้นท์
{
"update.channel": "none",
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
//"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe"
}
ฉันลองคำตอบข้างต้นตั้งแต่ vscode 1.42.1 และพวกเขาก็ทำงานเช่นกันเพื่อรับขั้ว bash git ให้ฉัน ดังนั้นบรรทัดล่างการตั้งค่านี้ใช้สำหรับเปิดเปลือก bash จากเทอร์มินัล:
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
อย่างไรก็ตามมันมีผลข้างเคียงที่ไม่พึงประสงค์ของการเป็นเชลล์ที่ใช้ในการสร้างสิ่งต่าง ๆ และที่ทำลายห่วงโซ่ MS C ++ เนื่องจาก\
อักขระที่ใช้สำหรับตัวคั่นเส้นทางเข้าใจโดยทุบตีเป็นอักขระหลบหนี การแก้ไขที่สมบูรณ์สำหรับฉันนั้นทำให้ฉันต้องเพิ่มตัวแปรพิเศษนี้โดยตั้งเป็น PowerShell:
"terminal.integrated.automationShell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
ตอนนี้ฉันสามารถมี terminal bash ของฉันและ Ctrl-Shift-B
หรือF5
ทำงานได้โดยไม่มีปัญหา
Oh, และเป็นผู้โพสต์อื่น ๆ ที่กล่าวถึงแหล่งที่มาสำหรับข้อมูลนี้เป็นเอกสาร VSCode ของ
เชลล์และcode [args]
การสนับสนุนที่แยกออกหรือไม่เกี่ยวข้องมีอะไรบ้าง
ในขณะที่คำตอบอื่น ๆ พูดคุยเกี่ยวกับวิธีกำหนดค่าและใช้การbash
สนับสนุนเทอร์มินัลVScode แบบรวมของ VScode พวกเขาไม่ได้แก้ปัญหาของ "เชลล์ที่แยกออก": เชลล์ที่ไม่ได้เปิดตัวจากภายใน VScode หรือที่ใดก็ได้ "ตัดการเชื่อมต่อ" จากเซิร์ฟเวอร์ VScode อินสแตนซ์ที่เกี่ยวข้องกับ IDE
กระสุนดังกล่าวสามารถให้ข้อผิดพลาดเช่น:
Command is only available in WSL or inside a Visual Studio Code terminal.
หรือ...
Unable to connect to VS Code server.
Error in request
นี่คือสคริปต์ที่ทำให้การแก้ไขปัญหานี้ง่ายขึ้น
ฉันใช้รายวันนี้เพื่อเชื่อมต่อเชลล์ในtmux
เซสชันด้วยอินสแตนซ์เซิร์ฟเวอร์ VScode ที่เฉพาะเจาะจงหรือเพื่อแก้ไขเชลล์รวมที่แยกออกจากการโฮสต์ IDE
#!/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"
หากคุณมี"bash", "powershell"และ"cmd" CLI's อยู่แล้วและมีการตั้งค่าเส้นทางที่ถูกต้องการสลับจาก CLI หนึ่งไปยังอีกสามารถทำได้โดยวิธีต่อไปนี้
Ctrl + ' : เปิดหน้าต่างเทอร์มินัลด้วยค่าเริ่มต้นของ CLI
bash + enter: เปลี่ยนจาก CLI เริ่มต้น / ปัจจุบันไปเป็นทุบตี CLI
powershell + enter: เปลี่ยนจาก CLI เริ่มต้น / ปัจจุบันของคุณเป็นpowershell CLI
cmd + enter: เปลี่ยนจาก CLI เริ่มต้น / ปัจจุบันของคุณเป็นcmd CLI
VS Code เวอร์ชั่นที่ฉันใช้คือ 1.45.0