Visual Studio Code trên Windows sử dụng PowerShell theo mặc định làm thiết bị đầu cuối tích hợp. Nếu bạn muốn sử dụng Bash từ Visual Studio Code, cần tuân thủ các bước nào?
Visual Studio Code trên Windows sử dụng PowerShell theo mặc định làm thiết bị đầu cuối tích hợp. Nếu bạn muốn sử dụng Bash từ Visual Studio Code, cần tuân thủ các bước nào?
Câu trả lời:
Bạn không còn cần phải nhập đường dẫn bash.exe theo cách thủ công. Câu trả lời này không được chấp nhận. Bây giờ bạn có thể chuyển sang bash trực tiếp. Chỉ cần chắc chắn rằng bạn đã cài đặt git.
Cài đặt Git từ https://git-scm.com/doad/win .
Sau đó mở Visual Studio Code và mở bảng lệnh bằng Ctrl+ Shift+ P. Sau đó nhập "mở cài đặt người dùng" và sau đó chọn "Mở cài đặt người dùng" từ menu thả xuống.
Sau đó, tab này sẽ mở ra với các cài đặt mặc định ở bên trái và các cài đặt của bạn ở bên phải:
Bây giờ sao chép dòng mã này vào trang cài đặt của riêng bạn (khung ở phía bên phải) và lưu -
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Lưu ý: "C:\\Program Files\Git\bin\bash.exe"
là đường dẫn bash.exe
tệp được đặt từ cài đặt Git. Nếu bạn đang sử dụng shell Bash của Hệ thống con Windows cho Linux (WSL), đường dẫn sẽ là"C:\Windows\System32\bash.exe"
Bây giờ nhấn Ctrl+ `để mở thiết bị đầu cuối từ Visual Studio Code. Và bạn sẽ có Bash -
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\bin\bash.exe"
, thiết bị đầu cuối đã không được mở. Đã thử "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
. Làm việc hoàn hảo cho tôi.
bash.exe
, và không git-bash.exe
. Cái sau sẽ mở một thiết bị đầu cuối bên ngoài mã VS dưới dạng một cửa sổ riêng biệt, trong khi bash.exe
sẽ chạy bên trong mã VS.
Cài đặt Git từ https://git-scm.com/doad/win
Mở Visual Studio Code và nhấn và giữ Ctrl+ `để mở terminal.
Mở bảng lệnh bằng cách sử dụng Ctrl+ Shift+ P.
Loại - Chọn Shell mặc định
Chọn Git Bash từ các tùy chọn
Nhấp vào biểu tượng + trong cửa sổ terminal
Thiết bị đầu cuối mới bây giờ sẽ là thiết bị đầu cuối Git Bash. Đợi vài giây để tải Git Bash
Bây giờ bạn có thể chuyển đổi giữa các thiết bị đầu cuối khác nhau từ danh sách thả xuống trong thiết bị đầu cuối.
Đã cập nhật: Các phiên bản mới hơn của Visual Studio Code có lệnh Chọn Mặc định Shell trong menu kéo xuống thiết bị đầu cuối:
Hãy nhớ rằng nó chỉ liệt kê các shell nằm trong biến môi trường% PATH% của bạn. Đối với các vỏ không nằm trong đường dẫn của bạn, hãy xem các câu trả lời khác.
Mẹo thêm: khi bạn bắt đầu bash, nó sẽ thực thi .bashrc
, nếu bạn có các lệnh khởi tạo, .bash_profile
bạn phải sao chép nó vào .bashrc
. Đó là điều cần thiết để sử dụng môi trường Conda trong Git Bash.
Cách dễ nhất bây giờ (ít nhất là từ Visual Studio Code 1.22 trở đi) là nhập Shift+ Ctrl+ Pđể mở Bảng lệnh và gõ:
Select Default Shell
Bây giờ bạn có thể dễ dàng chọn lớp vỏ ưa thích giữa những cái được tìm thấy trong đường dẫn của bạn :
Đối với các shell không nằm trong% PATH% của bạn, hãy xem các câu trả lời khác.
Xem tài liệu tham khảo vỏ Visual Studio Code hoàn chỉnh . Có rất nhiều thứ thịt.
Nhấn và giữ Ctrl+ `để mở thiết bị đầu cuối. Trong thiết bị đầu cuối, nhập bash
để sử dụng Git Bash trong thiết bị đầu cuối. Lưu ý: Đảm bảo bạn đã cài đặt Git Bash trên máy của mình.
Nếu bạn muốn sử dụng lại PowerShell, chỉ cần nhập powershell
vào thiết bị đầu cuối. Để sử dụng dòng lệnh Windows, nhập cmd
vào thiết bị đầu cuối.
Cài đặt bạn chọn sẽ được sử dụng làm mặc định của bạn.
exit
từ shell bash chạy bên trong shell mặc định, sau đó gõ powershell
vì bash không biết powershell là gì.
Đối với tôi sau đây là sự kết hợp duy nhất hoạt động!
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\git-cmd.exe",
"terminal.integrated.shellArgs.windows": [
"--command=usr/bin/bash.exe",
"-l",
"-i"
]
Với git-bash.exe ...shell.windows
, mỗi khi Bash mở bên ngoài Visual Studio !!
Mọi thứ đã được thay đổi một chút do các bản cập nhật mới nhất về Visual Studio Code. Các bước sau đây làm việc cho tôi.
Nhấn Ctrl+ Shift+ Pđể mở vòm lệnh Visual Studio Code.
Nhập >preferences: Open Settings (JSON)
vào vùng văn bản.
Thêm các dòng sau vào cuối tệp JSON được hiển thị trong khung bên phải của bạn.
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Đóng và mở lại phiên bản Visual Studio Code của bạn.
Tôi đã làm theo hướng dẫn này từ Paul DeCarlo để sử dụng Bash từ Hệ thống con Windows cho Linux (WSL) thay vì Git Bash cho Windows. Chúng là các bước tương tự như trên trong câu trả lời, nhưng sử dụng bên dưới trong Cài đặt người dùng của bạn để thay thế.
"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe",
Điều này làm việc cho tôi lần đầu tiên ... rất hiếm khi xảy ra với công cụ này.
Điều này, ít nhất là đối với tôi, sẽ khiến Visual Studio Code mở một cửa sổ Bash mới như một thiết bị đầu cuối bên ngoài.
Nếu bạn muốn môi trường tích hợp, bạn cần trỏ đến sh.exe
tệp bên trong bin
thư mục cài đặt Git của bạn.
Vì vậy, cấu hình nên nói C:\\<my-git-install>\\bin\\sh.exe
.
Nó phụ thuộc vào việc bạn đã cài đặt Git Bash trong người dùng hiện tại hay tất cả người dùng:
Nếu nó được cài đặt trên tất cả người dùng thì hãy "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
đặt Cài đặt người dùng ( Ctrl+ Comma).
Nếu nó chỉ được cài đặt cho người dùng hiện tại thì hãy "terminal.integrated.shell.windows": "C:\\Users\\<name of your user>\\AppData\\Local\\Programs\\Git\\bin\\bash.exe"
đặt Cài đặt người dùng ( Ctrl+ Comma).
Nếu các phương pháp được liệt kê ở trên không hoạt động thì bạn nên thử giải pháp của Christer nói -
Nếu bạn muốn môi trường tích hợp, bạn cần trỏ đến
sh.exe
tệp bên trongbin
thư mục cài đặt Git của bạn.Vì vậy, cấu hình nên nói
C:\\<my-git-install>\\bin\\sh.exe
.
Lưu ý: sh.exe và bash.exe xuất hiện hoàn toàn giống tôi. Không nên có sự khác biệt giữa chúng.
Thêm Git\bin
thư mục vào Path
biến môi trường. Thư mục %ProgramFiles%\Git\bin
theo mặc định. Bằng cách này, bạn có thể truy cập Git Bash chỉ bằng cách nhập bash
vào mọi thiết bị đầu cuối bao gồm cả thiết bị đầu cuối tích hợp của Visual Studio Code.
Tôi đã thiết lập rất nhiều conda
môi trường trênWSL
(Bash trên Ubuntu trên Windows), vì vậy tôi muốn sử dụng cùng cài đặt Bash trên Visual Studio Code.
Để làm điều đó, tôi chỉ phải chỉ định đường dẫn này đặc biệt Bash thực thi ( thay vì củaGit-Bash
) trên các thiết lập Visual Studio Mã của:
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\bash.exe"
PS : để đảm bảo vị trí thực thi Ubuntu trên Bash của bạn được cài đặt trên máy Windows của bạn, hãy mở Command prompt
(search cmd
:) và chạy:
where bash.exe
Câu trả lời này tương tự như câu trả lời được bình chọn hàng đầu, nhưng với một điểm khác biệt quan trọng: rất nhiều câu trả lời trước cho câu hỏi này tập trung vào việc chạy Git Bash trong khi câu trả lời của tôi tập trung vào việc chạy WSL Bash .
Kích hoạt hệ thống con Windows cho Linux trên máy Windows 10 của bạn.
Mở Visual Studio Code và nhấn và giữ Ctrl + `để mở terminal.
Mở bảng lệnh bằng cách sử dụng Ctrl + Shift + P.
Loại - Select Default Shell
.
Chọn WSL Bash
(KHÔNG Git Bash
) từ các tùy chọn.
+
biểu tượng trong cửa sổ thiết bị đầu cuối. Thiết bị đầu cuối mới bây giờ sẽ là thiết bị đầu cuối WSL Bash!Mã VS mới nhất:
Ctrl+,
)edit in settings.json
. Nhấp và thêm"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
Thiết bị đầu cuối Bash sẽ phản ánh trên thiết bị đầu cuối.
Tôi tình cờ được tư vấn cho một công ty Fortune 500 và thật đáng buồn là Windows 7 và không có đặc quyền của quản trị viên. Do đó, Node.js, Npm, Visual Studio Code, v.v. đã được đẩy vào máy của tôi - Tôi không thể thay đổi nhiều, v.v ...
Đối với máy tính này chạy Windows 7:
Dưới đây là các cài đặt mới của tôi. Một trong những không làm việc được bình luận ra.
{
"update.channel": "none",
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
//"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe"
}
Tôi đã thử các câu trả lời ở trên kể từ vscode 1.42.1 và họ đã làm việc với tư cách là để đưa cho tôi một thiết bị đầu cuối git bash. Vì vậy, dòng dưới cùng cài đặt này chỉ hoạt động để mở shell bash từ terminal:
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Tuy nhiên, nó có tác dụng phụ không mong muốn cũng là lớp vỏ được sử dụng để xây dựng mọi thứ và phá vỡ chuỗi MS C ++ vì \
ký tự được sử dụng cho trình phân tách đường dẫn được hiểu bởi bash là một ký tự thoát. Bản sửa lỗi hoàn chỉnh cho tôi sau đó yêu cầu tôi thêm biến phụ này, đặt nó thành powershell:
"terminal.integrated.automationShell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
Bây giờ, tôi có thể có thiết bị đầu cuối bash của tôi và Ctrl-Shift-B
hoặc F5
làm việc mà không có vấn đề.
Ồ, và như các áp phích khác đã đề cập, nguồn cho thông tin này là tài liệu của VSCode .
Những gì về vỏ tách ra hoặc không liên quan và code [args]
hỗ trợ?
Mặc dù các câu trả lời khác nói về cách định cấu hình và sử dụng bash
hỗ trợ đầu cuối WSL tích hợp VScode , nhưng chúng không giải quyết được vấn đề "vỏ tách rời": các vỏ không được khởi chạy từ bên trong VScode hoặc bằng cách nào đó bị "ngắt kết nối" từ máy chủ VScode ví dụ liên quan đến IDE.
Các shell như vậy có thể cho các lỗi như:
Command is only available in WSL or inside a Visual Studio Code terminal.
hoặc là...
Unable to connect to VS Code server.
Error in request
Đây là một kịch bản giúp dễ dàng giải quyết vấn đề này.
Tôi sử dụng điều này hàng ngày để kết nối các trình bao trong một tmux
phiên với một phiên bản máy chủ VScode cụ thể hoặc để sửa một trình bao tích hợp bị tách ra khỏi IDE lưu trữ của 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"
Nếu bạn đã có "bash", "powershell" và "cmd" CLI và có các cài đặt đường dẫn chính xác thì việc chuyển từ CLI này sang CLI khác có thể được thực hiện theo các cách sau.
Ctrl+ ': Mở cửa sổ terminal với CLI mặc định.
bash + enter: Chuyển từ CLI mặc định / hiện tại của bạn sang bash CLI.
powershell + enter: Chuyển từ CLI mặc định / hiện tại của bạn sang CLI powershell .
cmd + enter: Chuyển từ CLI mặc định / hiện tại của bạn sang cmd CLI.
Phiên bản mã VS tôi đang sử dụng là 1.45.0