参加你附近的 ,了解 VS Code 中的 AI 辅助开发。

WSL 2 与 Visual Studio Code

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

距离 适用于 Linux 的 Windows 子系统 2 (WSL 2) 的首次 Beta 版发布已经过去几个月了,我想分享一些关于它是什么、以及它将如何帮助您提高工作效率的信息。我从它登陆 Windows Insider 以来一直在使用这个 Beta 版,并且我很快就完全切换到在日常开发任务中使用 WSL 2。

WSL 2 中的变化

第一个版本在 Windows 上原生实现了系统调用。系统调用本质上是内核提供的函数,这意味着 WSL 环境中只支持已实现的调用。如果您使用过早期版本的 WSL,并且发现库和工具试图访问尚未实现的系统调用(例如,Go 调试器),您可能已经注意到这一点。虽然通过增量改进增加了对更多函数的支持,但 WSL 2 采用了一种完全不同的方法,通过提供一个带有完整 Linux 内核的轻量级虚拟机来解决这个问题。

没错,WSL 2 现在提供了一个虚拟机,但它不是您可能期望的虚拟机体验。传统的虚拟机启动可能很慢并且感觉孤立,而 WSL 2 与以前的版本一样无缝。期待 Windows 和 Linux 之间高度集成、极快的启动时间、小的资源占用,并且完全无需虚拟机配置或管理。

所有这些都转化为更高的 IO 性能——比 WSL 1 快达 20 倍——以及完整的系统调用能力。您的模块将安装得更快,您的仓库将克隆得更快,并且您最喜欢的库将可靠地工作。性能的提升意味着您还可以运行替代的 shell,例如 Zsh,甚至可以使用您最喜欢的 Node.js 版本管理工具。

WSL 2 和 Visual Studio Code

如果您正在按照说明操作,请确保您已选择加入 Windows Insider 版本并启用了 WSL 2。您可以在 WSL 2 安装说明 中了解如何开始使用。

您还需要安装 Visual Studio CodeWSL 扩展。此外,还可以查看 Beta 版 Windows 终端,以获得 Windows 上最佳的终端体验。

WSL extension

通过启动 Windows 终端并创建新的 WSL 选项卡,或者通过启动您安装的 Linux 发行版来打开 WSL。您还可以通过在终端中输入 wsl 直接从命令提示符或 PowerShell 切换到 Linux——这只是 WSL 深度集成到 Windows 中的众多方式之一。您还可以使用 WSL 内联做一些离谱的事情,例如……

WSL cow say example

在您的终端中,使用 code . 从 WSL 启动 Visual Studio Code。您甚至可以使用 wsl code . 内联切换到 Linux,启动 VS Code,然后返回到您的 Windows shell。😏

就我个人而言,我在 Windows 上 100% 的开发工作都使用 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 连接性很好,但与虚拟机相比性能相当差。
  • WSL 2 带来了一种混合方法,具有轻量级虚拟机、完全连接的体验和高性能。

再加上 Visual Studio Code 中的 WSL 扩展,您将拥有两全其美的体验——Linux 和 Windows 工具兼容性、卓越的性能以及无缝的开发体验。

进一步阅读

为了帮助您使用 WSL 设置 VS Code,有一个 WSL 工作教程。如果您想了解更多关于 VS Code Remote 以及它如何通过 SSH 和在 Docker 容器中工作,请参阅完整的 VS Code 远程开发文档

远程编码愉快!

Matt Hernandez,VS Code 项目经理 @fiveisprime

© . This site is unofficial and not affiliated with Microsoft.