Developing in WSL with VS Code Remote
搭配 VS Code Remote 遠端開發擴充套件在 WSL 下開發
:exclamation: 注意:遠端開發擴充套件需要在Visual Studio Code Insiders 上使用。
Visual Studio Code Remote - WSL 擴充套件允許你直接藉助 VS Code 令「適用於 Linux 的 Windows 子系統」(WSL) 作為你的全職開發環境。你可以在基於 Linux 的環境中進行開發,使用 Linux 特有的的工具鏈和實用庫,並在舒適的 Windows 中執行和除錯基於 Linux 的應用程式。
該擴充套件直接在 WSL 中執行命令和其它擴充套件,因此你可以編輯位於 WSL 中的檔案或掛載在其上的 Windows 檔案系統(例如 /mnt/c),而無需擔心遇到檔案路徑問題、二進位制相容性或其它跨作業系統的難題。
這使得 VS Code 能夠提供有著在本地進行開發一樣效率的開發體驗——包括完整的IntelliSense(程式碼補全)、程式碼導航和除錯——無論你的程式碼在何處託管,都是如此。
上手
安裝
上手前你需要做的幾件事情:
- 安裝對應你偏好的 Linux 發行版的「適用於 Linux 的 Windows 子系統」 。VS Code 將使用你安裝的預設發行版,因此可以根據需要使用wslconfig.exe 更改預設發行版。
注意:WSL 確實存在一些已知的對於某些型別的開發的限制 ,這些限制也會影響你的 VS Code 體驗。
-
在 Windows 端安裝Visual Studio Code Insiders (而不是在 WSL 中)。
-
安裝Remote Development 擴充套件包。
-
考慮在 Windows 端禁用 Git 的行尾結束符自動轉換,方法是使用命令提示符執行:git config --global core.autocrlf false 如果該項保持啟用狀態,由於行尾結束符的差異,此設定可能導致你未編輯的檔案中出現了修改操作。有關詳細資訊,請參閱提示和技巧 。
在 WSL 中開啟資料夾
在 VS Code 中開啟「適用於 Linux 的 Windows 子系統」中的資料夾與從命令提示符開啟 Windows 資料夾非常相似。
-
開啟 WSL 終端視窗(使用開始選單項或從命令提示符鍵入wsl )。
-
切換到你要在 VS Code 中開啟的資料夾(包括但不限於 Windows 檔案系統掛載點,如/mnt/c )
-
在終端中輸入code-insiders . 。在第一次執行此操作時,你應該看到 VS code 在獲取運行於 WSL 所需的元件。這應該只需要很短的時間,而且只需要執行一次。
-
片刻之後,一個新的 VS Code 視窗將會出現,你將看到一個 VS Code 正在 WSL 中開啟資料夾的通知。
VS Code 現在將繼續在 WSL 中配置自身,並在 WSL 中安裝你在本地執行的任何 VS Code 擴充套件以優化效能。 VS Code 會對你通知它所獲得的進展。
- 完成後,你現在可以在左下角看到一個 WSL 小標識,你將能夠像平常一樣使用 VS Code!
就是如此啦!你在此視窗中執行的任何 VS code 操作都將在 WSL 環境中執行,從編輯和檔案操作到除錯、使用終端等等都是如此。
管理擴充套件
VS Code 在以下兩個位置之一執行擴充套件:在 UI / 客戶端這邊或在 WSL 中。雖然作用於 VS Code UI 的擴充套件(如主題和程式碼片段)是在本地安裝的,但大多數擴充套件都將安裝在 WSL 中。
如果從「擴充套件」檢視安裝擴充套件,它將自動安裝在正確的位置。一旦安裝後,你可以根據類別分組確定擴充套件的安裝位置。那將有「本地 - 已安裝」的類別和一個安裝在 WSL 的類別。
注意:如果你是擴充套件作者並且你的擴充套件程式無法正常執行或安裝在錯誤的位置,請參閱支援遠端開發 檢視詳情。
實際需要遠端執行的本地擴充套件在「本地 - 已安裝」類別中顯示為「已禁用」。你可以單擊「安裝」按鈕在遠端主機上安裝擴充套件。
高階:強制在本地/遠端執行擴充套件
擴充套件通常為單獨執行在本地或遠端而設計和測試,而非對於兩者。但是,如果擴充套件程式支援這項特性,則可以強制它在settings.json 檔案中指定的特定位置執行。
例如,下面的設定將強制 Docker 和 Debugger for Chrome 擴充套件程式 遠端執行而不是預設在本地執行:
"remote.extensionKind": { "msjsdiag.debugger-for-chrome": "workspace", "peterjausovec.vscode-docker": "workspace" }
值「ui」 而不是「workspace」 將強制擴充套件在本地 UI /客戶端 端執行。 通常,除非在擴充套件程式的文件中另有說明,否則這應僅用於測試,因為它可以中斷擴充套件。 瞭解詳細資訊,請參閱有關支援遠端開發 的文章。
在 WSL 中開啟終端
從 VS Code 在 WSL 中開啟終端很簡單。在 WSL 中開啟資料夾後,在 VS code (Terminal > New Terminal) 中開啟的任何終端視窗將自動在 WSL 中執行,而不是在本地執行。
你還可以使用此同一終端視窗中的code-insiders 命令列來執行許多操作,例如在 WSL 中開啟新檔案或資料夾。 鍵入code-insiders --help 以檢視命令列中可用的選項。
在 WSL 中除錯
在 WSL 中開啟資料夾後,可以像在本地執行應用程式一樣使用 VS Code 的偵錯程式。例如,如果在launch.json 中選擇一個啟動配置並開始除錯(F5),應用程式將在遠端主機上啟動並與偵錯程式互動。
.vscode/launch.json中有關配置 VS Code 除錯功能的詳細資訊,請參閱debugging 文件。
WSL 特定設定
在 WSL 中開啟資料夾時,也會引用 VS Code 的本地使用者設定。雖然這可以保持使用者體驗的一致性,但你可能希望更改本地計算機和 WSL 之間一些設定。幸運的是,一旦連線到 WSL,你還可以通過執行「首選項」來設定 WSL 特定設定:開啟從命令選項板(F1)中開啟「遠端設定命令」或在設定編輯器中選擇「遠端」選項卡。這些將覆蓋你在 WSL 中開啟資料夾時所具有的任何本地設定。
已知限制
本節包含 WSL 常見已知問題的列表。目的不是提供完整的問題列表,而是強調 WSL 中常見的一些問題。
常見問題
我應該如何更改「遠端 - WSL」使用的發行版呢?
「遠端 - WSL」擴充套件使用的是你的預設發行版,你可以通過wslconfig.exe 對其進行更改。
例子如下:
wslconfig /setdefault Ubuntu
通過以下命令得知你一已安裝的發行版:
wslconfig /l
我看到有關缺少庫或依賴項的錯誤
某些擴充套件依賴於某些 WSL Linux 發行版原生安裝缺失而找不到的庫。你可以使用其包管理器將其他庫新增到Linux發行版中。 對於基於 Ubuntu 和 Debian 的發行版,執行sudo apt-get install <package> 來安裝所需的庫。檢查擴充套件的文件或提及的執行時資訊以獲取其它安裝詳細資訊。
在WSL中執行時,VS Code Server 的連線要求是什麼?
VS Code Server 需要與update.code.visualstudio.com 和marketplace.visualstudio.com 的 HTTPS(埠443)連線。伺服器和 VS code 客戶端之間的所有其它通訊都是通過經過身份驗證的隨機的本地 TCP 埠完成的。
作為擴充套件作者,我需要做什麼?
VS Code 擴充套件 API 抽象出本地/遠端詳細資訊,因此大多數擴充套件都可以在不進行修改的情況下工作。但是,如果擴充套件可以使用它們所需的任何 node 模組或執行時,則可能需要進行調整。 我們建議你測試擴充套件程式,以此來確定是否需要更新。有關詳細資訊,請參閱支援遠端開發 。
問題或反饋
- 參見提示和技巧 或者FAQ 。
- 在Stack Overflow 上搜索。
- 新增一個新特性請求 或者報告一個問題 。
- 為我們的文件 做出貢獻或對VS Code 自身 。
- 檢視我們的CONTRIBUTING 指南瞭解詳情。
本文由VS Code Remote 官方文件 翻譯而成。