在本地 VSCode 中打开远程文件夹,就像在 WSL2 中打开"code ."



当我想在本地VSCode中打开远程主机中的当前工作目录时,是否可以像在WSL中那样在远程服务器ssh会话中使用$ code .

附录:在本地WSL中,我可以发出$ code .,这将打开安装在Windows 10上的VSCode中的当前目录。

我正试图在另一个通过ssh远程连接的远程Linux中获得相同的行为。因此,当我在远程机器上并发出$ code .时,它会在本地窗口上安装的VSCode中打开该目录。

我不认为这会很简单,但我肯定和你一样希望能够做到这一点。

问题

以下是为什么它不起作用的解释,以及为什么它可能很难设置的提示:

code .在WSL(或PowerShell(中的工作方式是在给定目录中启动VS代码(作为第一个参数作为点传递(。

当您从WSL运行code时,它使用wslpath将路径转换为Windows可访问的路径,而WSL魔术在Windows中使用WSL路径(\wsl$...(执行code.exe(毕竟,它是Windows二进制文件,而不是Linux二进制文件(;

理论

为了实现这一点,你需要实现三件事:

  • 计算出您连接到的远程设备,并能够将该信息传递给vscode
  • 在本地机器上执行code.exe,但从远程终端执行

想法

如果你想尝试并实现它,你可以使用几个想法:

  • 远程设备上的脚本可以输出vscode://URL供您单击(或找到一种方法让您的客户端自动加载它(
  • 您可能可以在SSH会话中使用转发端口来联系您电脑上的某些内容(可能是定制的,也可能是Windows RDP或telnet/SSH服务器?(
  • 也许装载一个本地目录作为SSH连接的一部分(我不知道SSH的所有边缘,但它做了很多很酷的事情!SCP可能会有所帮助?(并且能够执行/触发事情

只是一些沉思!这不是我需要付出任何努力的事情,但我在寻找其他东西时遇到了你的问题,并发现它很有趣。希望这对任何人都有帮助,欢迎任何想法/反馈!

您可以使用sshfs在本地装载远程文件系统。这将允许您使用vscode的本地副本在远程服务器上工作。窗口的步骤如下。

  1. 设置窗口以使用sshfs。安装最新版本的WinFsp。

  2. 安装最新版本的SSHFS Win。

  3. 将网络驱动器映射到linux服务器。要映射到根文件节点,可以使用以下方法:

    \sshfsusername@machine_ip....
    

远程服务器将像普通目录一样可访问。在vscode中,您可以向工作区添加一个文件夹,并在远程机器上编写代码,而无需每次进行更改时都进行SCP操作。

最新更新