先说明下应用场景。
假设你有个本地的VM虚拟机,你现在想在主机上的Vscode访问这台虚拟机,毕竟主机性能好,写写代码啥的也不会卡。那最简单的方法就是先获取虚拟机的IP,再通过Vscode的SSH Remote访问虚拟机。
到这一步基本上都没问题,但当查看拓展,也就是插件列表的时候就会发现大部分安装在主机的插件,都需要通过SSH在远程工作区再安装一遍。
那也没办法,只能安装了。但你安装的时候你就会发现,有相当一部分的插件会一直卡在“正在安装”这里,而且等了一两个小时之后,还是卡在这里。去看终端也没有报错和消息输出,完全不知道问题出在哪。
我是试过开VPN、断开重连、在虚拟机上通过Vscode安装插件之类的操作,没啥用。最后还是谷歌才找到的方法。解决方法也很简单,先打开用户设置,当然,是json格式的。
然后在json结尾输入插件名+[“ui”],至于为什么文末会提到。
JSON
"remote.extensionKind": {
"GitHub.copilot": ["ui"],
"GitHub.copilot-chat": ["ui"],
"golang.go": ["ui"],
},
json这块地方自动补全可能不太好用,如果你不知道插件名字的话可以去插件页面查看它的标识符。
改完之后需要保存重启Vscode,这个时候再去安装插件。这个时候你安装(的一小部分插件)可能还是会卡在“正在安装”这里,但比较神奇的是你等一会再重启一次vscode,它就自己安装好了……
至于它为什么能生效,涉及到vscode插件的两种不同模式,反正我看的是挺懵的。比起让我来扯这扯哪的,我觉得还是自己去看vscode的官方文档好一些。