最近,微软在 VS Code 官方博客中宣布了 Visual Studio Code Server !
2019 年,微软发布了 VS Code Remote ,开启了远程开发的新时代!
2020 年,微软发布了 GitHub Codespaces —— 一个全托管的远程开发解决方案。
如今,Visual Studio Code Server 来了!
Visual Studio Code Server 是一项可以在远程开发机器上运行的服务,例如桌面 PC 或者虚拟机 (VM)。它允许开发者通过 vscode.dev URL 从任何地方安全地连接到这个远程计算机,而且不需要通过 SSH 。
目前,微软发布了 private preview 版本的 VS Code Server ,以及一个可以轻松安装、更新、管理和连接到 VS Code Server 服务的 CLI ( code-serverCLI )。开发者可以将服务器安装在您喜欢的任何位置(比如本地的开发机器、云端的虚拟机等),并使用 VS Code for Web ( vscode.dev )通过浏览器安全地访问它,而无需进行设置 SSH 或 https 。
目前,code-serverCLI 是区别于 codeCLI 的一个独立的 CLI 。未来,codeCLI 将会统一,让开发者可以同时管理桌面和服务器。
VS Code Server 的 CLI 在 VS Code 客户端 (vscode.dev) 和你的远程计算机之间建立隧道。隧道( Tunneling )也被称为端口转发,将数据从一个网络安全地传输到另一个网络。
VS Code Server 包括以下两个核心组件:
VS Code Server 允许开发者以新的方式使用 VS Code ,例如:
目前 VS Code Server 还处于 private preview 阶段,可以访问下面的链接进行注册申请:
https://aka.ms/vscode-server-signup
101
daveh 2022-07-12 19:12:35 +08:00 via iPhone
@imKiva 用的 WSL 2 吗? WSL 2 访问本地盘文件效率非常低下,index 慢也可能是这个导致的,可以转换成 WSL 1 试试。
|
105
felixcode 2022-07-13 18:45:39 +08:00
|
107
smallthing 2022-07-14 22:54:41 +08:00
@imKiva 笑死了,然而这个 P9 协议慢死。
|
108
imKiva 2022-07-15 12:02:50 +08:00
@smallthing #107 我们知道 P9 很慢,所以我们的项目文件都在 wsl 目录里,并不经过 P9 。你仔细看我的图哈
|
109
smallthing 2022-07-15 23:26:35 +08:00
|
110
imKiva 2022-07-15 23:30:04 +08:00
@smallthing #109 噢噢原来你说的是这个意思,不过还好,我还真没体验出来,闹笑话了,见谅~
|
111
daveh 2022-07-16 12:37:44 +08:00 via iPhone
@imKiva 除非你在 WSL 2 中跑 IDE ,否则绕不开 P9 ,编译时可能编译器和代码都在 WSL 中,用不上 P9 ,但如果在 Windows 中运行的 IDE ,索引代码文件时必须通过 P9 访问。文件密集访问时可能会慢,但如果机器性能够强,这点慢也基本感觉不到。
用 WSL 最好的体验是用 WSL 1 ,因为对 IDE 来讲,就是访问本地文件,索引飞速,而 WSL 中编译器访问代码,通过 drvfs ,据说比 P9 块十几倍。 |
112
zxCoder 2022-07-21 20:17:56 +08:00
@daveh 我需要非常谨慎地对待文件的同步,比如定时把远程同步到本地,不然就经常会出现一团糟的情况,有的文件是本地新,有的是远程更新。
还有比如本地创建个空文件夹,也同步不了。等等,总体体验确实不如 vscode 直接访问远程,无奈 IDE 确实是好用 |
114
daveh 2022-07-21 22:53:04 +08:00
@zxCoder 用远程 Deployment 模式,你的代码文件只会在本地修改,自动同步到远程,怎么会出现远程的新呢?远程会产生编译输出文件,这些文件默认在本地并不存在,需要你手工同步到本地,可以认为这些文件本来就是远程新。
本地空文件夹,如果需要同步远程,在 Deployment, Options 里勾选相关选项;同样也可以设置删除本地文件时,自动删除远程。这两个不是默认选项。 如果远程服务器中断,倒是有可能导致本地代码文件新,远程的旧,此时只需要打开 Deployment, Sync 一下就行。 从你对 gateway 描叙来看,是否远程服务器 ping 值高?否则也不会卡,gateway 还有不少界面问题、或者功能缺失,但本身卡的问题倒是没有碰到过,除非远程服务器性能比较差或者 ping 值高或者当时负载高,gateway 界面上是会实时显示远程服务器 ping 值和负载的。 |
115
daveh 2022-07-21 23:38:29 +08:00 via iPhone
@sidkang 这就尴尬了,群“雄”没一个能打的,只是尴吹 vsc 多牛 B ,不敢拿实际场景来对战。
好歹大家也让这个儿童欢乐多一把呀。 |
116
zxCoder 2022-07-22 09:47:56 +08:00
@daveh 那只能说我们的使用场景确实存在很大的不同了。就我个人而言,jetbrain 的 deployment 模式确实无法满足需求,就像是存在一种很不自然的 gap
|
117
zxCoder 2022-07-22 10:04:44 +08:00
@zxCoder 不过其实我最近还是一直在用 deployment ,vscode 写大型代码还是不太舒坦,总感觉 jetbrain 更加智能化一点,毕竟是专业 IDE
|
118
daveh 2022-07-23 11:18:16 +08:00 via iPhone
@zxCoder 不太理解你的所谓 gap 在哪?其实就一个习惯问题而已,如果你的场景,是前面所说,写脚本,远程服务器生成输出文件,这个输出文件其实没有必要同步下载到本地,只需要打开 Browse Remote Host 就能浏览远程输出文件,双击也能在 IDE 中打开查看内容,远程文件更新后,IDE 也会提醒你是否要查看最新文件,如果本地编辑,也能同步到远程。
我理解你用 vscode 远程,也只是在文件浏览窗口,能同时看到远程新文件名称,其实你也没有把文件下载本地,如果你要用其他三方工具处理文件,还是得下载本地才行,当远程文件更新了,本地下载文件也不会同步,需要你手工下载同步更新。 同样,JB 的 Development 模式,是分了两个窗口来浏览文件,左侧 Project 窗口看的是本地最新文件,右侧你打开 Browse Remote Host 浏览的是远程最新文件,如要三方工具处理远程文件,也只需要下载同步就行。 而 vs code 远程麻烦的地方是,如果你要下载文件,你得另外指定其他本地目录吧(没用过,有错可以纠正)?本地下载文件目录 vsc 中也看不到,而 JB 则不用另外指定目录,下载后,直接在与远程一致目录结构中看到远程文件。 如果 vsc 中单独加本地目录进来,好,你添加的本地目录,是否也能看到最新的远程文件?是否也需要手工同步下载?如此一来比 JB 的优势在哪?而 JB 反而更直观,直接在左侧 Project 窗口看到下载文件。 讲这么多,其实如前面所说,就一个习惯问题而已,以及个人会不会用的问题,工具是死的,怎么灵活运用起来看个人。 而且 vsc 远程没有吹的那么神,因为开发时有很多任务场景,vsc 远程都很难搞定。比如前面讲的,怎么方便用三方工具处理工程文件? vsc 的吹手没一个敢回答。 |
119
zxCoder 2022-07-23 11:35:16 +08:00
@daveh "如果 vsc 中单独加本地目录进来,好,你添加的本地目录,是否也能看到最新的远程文件?是否也需要手工同步下载?如此一来比 JB 的优势在哪?而 JB 反而更直观,直接在左侧 Project 窗口看到下载文件。"
vsc 不需要区分什么本地目录和远程目录,想了一下这差不多就是我说的 gap 的地方。我添加了目录就直接反映在远程目录里,不需要任何同步,更别说手工同步了 |
121
zxCoder 2022-07-23 12:38:15 +08:00
@daveh 所以这就是我说的我们的使用场景不同了,我倒是没有这种需求,只是单纯觉得 vsc remote 就可以直接在本地访问远程的项目很方便
|
122
daveh 2022-07-23 12:54:52 +08:00 via iPhone
@zxCoder 那你用 vscode 没有下载文件到本地诉求,文件都留远程服务器,用 JB 不也是一样的?想看远程文件,用 JB 的 Browse Remote Host 直接去看好了。
所以,那是为何之前要纠结 JB 中怎么下载文件到本地? |
123
zxCoder 2022-07-23 13:08:04 +08:00
@daveh 比如 IDE 里文件路径自动提示用过吗?如果训练的 model checkpoint 不同步到本地,IDE 就不能给我提示(这种大大小小的问题还有其他,暂时想不起来了),但是 vsc remote 或者 gateway 就不一样了,我是直接在操作远程的东西,体验是完全不一样的
|
124
daveh 2022-07-23 14:44:11 +08:00 via iPhone
@zxCoder 有依赖的文件就下载本地,点下鼠标就完成。而且你要的文件路径提示,跟文件内容是否新也没关系。
你训练的文件是什么格式?不用查看内容或共享吗? IDE 可能有插件能看,但功能一般比专有软件弱。 用专有软件看,你就得下载到本地。 |