使用Visual Studio Code的WSL 2
2019年9月3日,由Matt Hernandez发布,@fiveisprime
自从Windows Subsystem for Linux 2(WSL 2)的初始测试版发布以来,已经过去了几个月,我想分享一下这是关于什么的,以及这将如何帮助你提高工作效率。自从它在Windows Insiders中推出以来,我一直在使用测试版,并且我很快就在我的日常开发任务中完全切换到使用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 Insiders构建并启用了WSL 2。你可以在WSL 2的安装说明中了解更多关于如何开始的信息。
你还需要安装 Visual Studio Code 和 WSL 扩展。可选地,查看 beta Windows Terminal 以获得在 Windows 上最佳的终端体验。
打开WSL,可以通过启动Windows终端并创建一个新的WSL标签页,或者通过启动你安装的Linux发行版。你也可以直接从命令提示符或PowerShell通过输入wsl
切换到Linux - 这只是WSL深度集成到Windows中的众多方式之一。你也可以使用WSL内联来做一些荒谬的事情,比如…
从你的终端,使用code .
从WSL启动Visual Studio Code。你甚至可以使用wsl code .
切换到Linux内联,启动VS Code,然后返回到你的Windows shell。😏
就我个人而言,我在Windows上进行100%的开发时使用的是WSL 2——所有的开发工具,如Git和Node.js,都安装在我的Linux环境中。查看这篇技巧和窍门文章,了解更多关于在WSL中自定义VS Code以满足您需求的信息。
这是我的设置。
请注意在截图中,我已连接到我的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