🚀 在 VS Code 中取得

搭配 Visual Studio Code 的 WSL 2

2019 年 9 月 3 日 作者:Matt Hernandez,@fiveisprime

自從 Windows Subsystem for Linux 2 (WSL 2) 的初始測試版發布以來,已經過了幾個月,我想分享一下這一切是關於什麼,以及這將如何幫助您提高生產力。自從它在 Windows 測試人員計畫中推出以來,我一直在使用測試版,並且我很快就完全切換到在日常開發任務中使用 WSL 2。

WSL 2 的變更內容

第一個版本在 Windows 上原生實作了系統呼叫。系統呼叫本質上是由核心提供的函數,這意味著只有已實作的呼叫在 WSL 環境中受到支援。如果您使用早期版本的 WSL,並且發現嘗試存取尚未實作的系統呼叫的程式庫和工具(例如 Go 偵錯工具),您可能已經注意到這一點。雖然逐步改進以增加對更多函數的支援,但 WSL 2 採取了完全不同的方法,透過運送具有完整 Linux 核心的輕量級虛擬機器來解決這個問題。

沒錯,WSL 2 現在隨附 VM,但它不是您可能對 VM 期望的體驗。傳統 VM 可能啟動緩慢且感覺隔離,但 WSL 2 與之前的版本一樣無縫。預期 Windows 和 Linux 之間的高度整合、極快的啟動時間、小的資源佔用,以及絕對沒有 VM 組態或管理。

所有這些都轉化為 IO 效能的提升 – 比 WSL 1 快達 20 倍 – 以及完整的系統呼叫能力。您的模組將安裝得更快,您的儲存庫將複製得更快,並且您最喜歡的程式庫將可靠地工作。效能的提升意味著您還可以執行替代 shell,例如 Zsh,甚至可以使用您最喜歡的 Node.js 版本管理實用程式。

WSL 2 和 Visual Studio Code

如果您正在按照步驟操作,請確保您已選擇加入 Windows 測試人員組建並啟用 WSL 2。您可以在 WSL 2 的安裝說明中了解更多關於如何開始的資訊。

您還需要安裝 Visual Studio CodeWSL 擴充功能。或者,您可以查看 beta Windows Terminal,以獲得 Windows 上最佳的終端體驗。

WSL extension

開啟 WSL,可以透過啟動 Windows 終端並建立新的 WSL 索引標籤,或透過啟動您安裝的 Linux 發行版。您也可以直接從命令提示字元或 PowerShell 切換到 Linux,方法是在終端機中輸入 wsl – 這只是 WSL 如此深入整合到 Windows 的眾多方式之一。您也可以內聯使用 WSL 來做一些荒謬的事情,例如…

WSL cow say example

從您的終端機,使用 WSL 的 code . 啟動 Visual Studio Code。您甚至可以使用 wsl code . 來內聯切換到 Linux,啟動 VS Code,然後返回您的 Windows shell。 😏

就我個人而言,我 100% 在 Windows 上使用 WSL 2 進行開發 – 所有開發工具(例如 Git 和 Node.js)都安裝在我的 Linux 環境中。查看這篇 訣竅與技巧文章,以了解更多關於在 WSL 中自訂 VS Code 以滿足您的需求的資訊。

以下是我的設定概觀。

Matt's WSL 2 setup

請注意螢幕截圖中,我已連線到我的 WSL 2 實例(請參閱左下角的 'Ubuntu-18.04' 作為遠端來源),並且我已從偵錯工具啟動了一個 Node.js 應用程式,並且它位於中斷點。在偵錯主控台中,我輸入了 process.platform 以顯示 WSL 擴充功能如何將所有編輯器互動預設為 Linux 環境。完全不需要任何組態即可使其運作,只需從 WSL 擴充功能連線到您的 WSL 環境即可開始工作。另請注意,我的行尾預設為 LF(顯示在狀態列中),而無需設定任何額外的 Git 組態選項 – 如果您是在 Windows 上從事開源工作,您就會明白為什麼這是一件大事。

我所有最喜歡的擴充功能都運作正常,並且以正確的環境為目標。例如,「原始檔控制」檢視正在顯示對專案的變更,使用的是安裝在 WSL 2 中的 Git 版本,並且 Docker 擴充功能已設定為存取 Docker Desktop WSL 2 技術預覽。

所有這一切都因為使用了 WSL 擴充功能而成為可能。編輯、偵錯,甚至擴充功能都以您期望的方式在您最喜歡的編輯器中運作。

WSL 2 的優點

重點回顧

  • 虛擬機器資源密集,並且會產生非常不連貫的體驗。
  • 原始 WSL 非常連貫,但與 VM 相比,效能相當差。
  • WSL 2 帶來了一種混合方法,具有輕量級 VM、完全連貫的體驗和高效能。

在 Visual Studio Code 中加入 WSL 擴充功能,您就擁有兩全其美的優勢 – Linux 和 Windows 相容性,為您的工具提供卓越的效能和無縫的開發體驗。

延伸閱讀

為了幫助您設定 VS Code 和 WSL,這裡有一個在 WSL 中工作的教學課程。如果您想了解更多關於 VS Code Remote 以及它如何在 SSH 和 Docker 容器中運作的資訊,請參閱完整的 VS Code 遠端開發文件

遠端編碼愉快,

Matt Hernandez,VS Code 專案經理 @fiveisprime