当我想在本地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的本地副本在远程服务器上工作。窗口的步骤如下。
-
设置窗口以使用sshfs。安装最新版本的WinFsp。
-
安装最新版本的SSHFS Win。
-
将网络驱动器映射到linux服务器。要映射到根文件节点,可以使用以下方法:
\sshfsusername@machine_ip....
远程服务器将像普通目录一样可访问。在vscode中,您可以向工作区添加一个文件夹,并在远程机器上编写代码,而无需每次进行更改时都进行SCP操作。