通过远程 WSL 扩展在 vscode 中使用 WSL bash 与在 windows 中选择默认 shell 使用它有何不同?

How is using WSL bash in vscode through the remote WSL extension different from using it by selecting as default shell while in windows?

在我知道 vscode 的远程 WSL 扩展之前,我一直在其中使用 bash,方法是从终端选项中选择它作为默认值 shell。如果我只想使用 bash 作为默认终端,那么使用远程 WSL 有什么好处?

你好 Rohan,欢迎来到 SO!

我会尝试回答这个问题,尽管知识渊博的人可能有更好的见解。

当您在 windows 中加载 VSCode 时,它会像 windows 资源一样访问您的各种 PC 资源。例如,您的文件将来自 windows 文件夹结构。即使您使用 WSL bash 作为您的终端,VSCode 仍然在 windows 基础上运行。

如果您使用远程 WSL 扩展,它通过远程启动 WSL 层中的 VSCode 后端,并连接 windows UI 到该后端('remotely' 尽管在同一台 PC 上)。由于 运行 后端在 linux 环境中,文件被加载为 linux 文件并通过 WSL 系统处理,而不是正常的 windows 访问。

关于 'What is the advantage?' 这个问题,我建议的优点是,现在不用在 windows 中的 VSCode 和 WSL 中的命令行之间进行拆分,你现在拥有两者通过 WSL 协调行动。它应该提供一些好处(特别是当 WSL2 正确命中并且性能提高时)围绕你试图以 linux 方式使用的文件不会以 windows 方式混乱的事情,并且只是让事情感觉有点更多连接。

但是,如果您只是将 WSL bash 用作命令行替代品,而不是因为它 linux 的优点而使用它(尽管我不知道是否会是这种情况),可能优势不大。

这是切换到 devcontainer 的垫脚石,它非常简洁。

此页面可能会有更多帮助,但这是我的理解! https://code.visualstudio.com/docs/remote/wsl