V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
whitedroa
V2EX  ›  Visual Studio Code

VSCode Remote 很香!但是有几个槽点

  •  
  •   whitedroa · 2022-07-31 15:36:14 +08:00 · 9508 次点击
    这是一个创建于 875 天前的主题,其中的信息可能已经有所发展或是发生改变。

    日常工作语言是 Go ,由于项目是微服务,经常需要打开十几个项目,并且来回切换。

    之前使用的是 Goland ,使用体验非常棒,但是由于打开的项目很多,导致内存不够用(电脑是 32g 内存的 mac),会偶尔卡死。而且项目使用的依赖很多很大,更新依赖后,goland 重新索引非常耗时,而且会导致电脑严重发热、卡顿。

    由于公司提供了开发机,且配置很高(32 核 64g ssd),最近改用了 vscode +remote ,确实很香,文件和依赖都在开发机上,索引也在开发机,本地只是 gui ,用了之后再也没卡过。但是 remote 下好几有几个 bug ,timeline 不显示。试了下,用 vscode 打开本地 git 项目 timeline 是可以的。

    还有就是有时候智能提示比较卡,输入了之后过几秒才给建议

    有 v 友知道 timeline 怎么解决吗

    第 1 条附言  ·  2022-08-01 10:48:14 +08:00
    问题原因:我的项目文件放在$HOME 目录下,然而$HOME 其实是个软连接。remote 对这种情况处理有些问题
    解决方案:换成绝对路径就可以了
    34 条回复    2022-12-01 18:41:41 +08:00
    ab
        1
    ab  
       2022-07-31 15:36:53 +08:00   ❤️ 20
    你这个头像挺欠打的 :>
    whitedroa
        2
    whitedroa  
    OP
       2022-07-31 15:38:52 +08:00
    chotow
        3
    chotow  
       2022-07-31 15:41:47 +08:00 via iPhone
    因为手上电脑太垃圾,尝试用 VSCode 写 Go ,可怎么用都感觉比不上 GoLand 那般让人省心,包括但不限于运行项目、跳转接口或实现 🥲
    whitedroa
        4
    whitedroa  
    OP
       2022-07-31 15:46:41 +08:00
    @chotow 确实,goland 基本上是开箱即用的,而且使用体验很好。vscode 可能还要折腾下才行,我换 vscode 也是因为 vscode 对 remote 支持比 goland 好
    winglight2016
        5
    winglight2016  
       2022-07-31 16:08:31 +08:00
    特意看了一下,远程肯定支持 timeline 的,你看看是不是没有安装远程版的 git 插件
    whitedroa
        6
    whitedroa  
    OP
       2022-07-31 16:10:14 +08:00
    @winglight2016 远程版的 git 插件是什么呢?目前就装了这几个
    [![vF7VNq.png]( https://s1.ax1x.com/2022/07/31/vF7VNq.png)]( https://imgtu.com/i/vF7VNq)
    whitedroa
        7
    whitedroa  
    OP
       2022-07-31 16:14:54 +08:00
    @winglight2016 timeline 不是自带的功能吗,应该不需要去安装插件吧
    lingly02
        8
    lingly02  
       2022-07-31 16:17:28 +08:00 via iPhone
    我是用过 remote container ,timeline 肯定是有的,但很多插件要在 container 再装一遍
    stanjia
        9
    stanjia  
       2022-07-31 16:17:49 +08:00
    32 核 64g ssd 这是什么开发机?发一下?
    qbug
        10
    qbug  
       2022-07-31 17:01:02 +08:00
    呃,你的 remote 端是不是没装 git ,或者是 git 的路径有什么特别?
    jnqcMer2019
        11
    jnqcMer2019  
       2022-07-31 17:57:26 +08:00
    我之前开发机的 $HOME 目录是个软链接,remote 的路径如果是软链接,好像会有这个问题。改成绝对路径就好了
    sodayo
        12
    sodayo  
       2022-07-31 18:04:25 +08:00 via Android   ❤️ 1
    vscode 碰到问题去对应扩展的 GitHub 仓库下提交 issue 就行,我是在上面开发 Java ,几天之内就会在预览版上提交修复。
    daveh
        13
    daveh  
       2022-07-31 18:55:54 +08:00
    开发机安装 Ubuntu 22.04 、或者安装 xrdp ,开远程桌面访问,然后使用 Linux 版的 GoLand 。
    或者试试远程 gateway ,这个开发机配置跑 gateway 远程完全没有问题,当然现在 beta 阶段可能有些界面 BUG 要适应一下。
    别信那些什么 gateway 测评,大多数人“测评”是开个虚拟机去跑,要知道现阶段 beta 远程也是跑完整 IDE ,比较吃资源,没有好机器带不动,后续 gateway 正式发布,等所有界面都整改了,远程不用跑完整 IDE ,就能降资源占用。
    chotow
        14
    chotow  
       2022-07-31 20:44:11 +08:00   ❤️ 1
    @daveh #13 你提到的这两种我刚好都试过,说说我的体验
    背景环境:本机 macOS ,远程机 Debian ,内网互联
    xrdp:桌面环境 GNOME 感觉费资源,且使用起来即使是内网也觉得画面不流畅,而其他桌面体验过一些,感觉有点简陋;致命点,快捷键不一致,本机使用微软的 Remote Desktop ,有时候按着就直接关掉了远程桌面本身;快捷键这个问题可能需要单独去记忆一套 Linux 下的键位
    JetBrains Gateway:本机消耗资源也不少,但致命点是「代码处理」的问题,比如 GoLand 时不时会出现代码失去高亮的情况,另外,跳转到接口或实现要么慢要么无法使用;对比之下,VSCode 的远程就是吊打 JetBrains 的存在,可惜用得不顺手(严重依赖 JetBrains IDE )
    不知这位朋友有何高见可以分享一下
    littlewing
        15
    littlewing  
       2022-07-31 21:15:30 +08:00
    vscode 写 go 能 找到 interface 的所有实现 和 找到 struct 实现了哪些 intrerface 吗
    livepps
        16
    livepps  
       2022-07-31 22:29:18 +08:00 via Android
    @chotow 可以试试 x11 转发 jetbrains 的显示还算流畅
    chotow
        17
    chotow  
       2022-07-31 22:37:15 +08:00 via iPhone
    @livepps #16 这个方案前阵子看到过,不过还没实践 😄
    daveh
        18
    daveh  
       2022-07-31 23:25:45 +08:00   ❤️ 1
    @chotow GNOME 已经比较轻量了,耗不了多少资源,我这使用 IDE 没有碰到过不流畅的问题,可能机器比较强一些。GNOME 有些功能比如窗口切换会有动画,动画可能会带来不流畅感觉,毕竟 xrdp 、远程服务器都没有图形加速,而这些都是华而不实的东西,关闭掉动画就行。另外 rdp 不挑网络,网络快有快的用法,慢也能用。当然机器最好不太差,毕竟没有图形加速靠 CPU 撑着,机器差点可能会慢。
    快捷键建议你去熟悉一个比较中立的 Keymap ,mac 和其他环境都能通用,毕竟非 mac 环境都缺少 mac 独有键,很难做到完全一致。IDE 支持多键位,即使用其他 Keymap ,mac 独有的那些快捷键你也能保留在 mac 中用。另外其实如果会弄,也可以在 GNOME 中调出 Meta 键,用上类似 mac 的快捷键。

    Gateway 没用过 GoLand 的,用其他 IDE 没有碰到高亮、跳转的问题,毕竟这是基础功能,当然界面问题有一些,包括还有出现 projector 投屏的界面,不过不影响使用。

    上面还有人提到 X11 ,其实如果配置好了 X11 环境,也可以用 projector 。
    Citrus
        19
    Citrus  
       2022-07-31 23:27:27 +08:00 via iPhone
    VSCode 对 go 的支持还是太原始了。跟 GoLand 完全没法比。很多高亮代码补全和代码生成的能力都没得。。。
    changehow
        20
    changehow  
       2022-08-01 01:28:08 +08:00 via iPhone
    @jnqcMer2019 怕不是也是字节老哥
    ikidou
        21
    ikidou  
       2022-08-01 01:49:27 +08:00
    Java 的收费版好像已经支持远程开发了,GoLand 不支持吗
    dcoder
        22
    dcoder  
       2022-08-01 02:03:14 +08:00
    结果成了 goland 推广现场 LOL
    chaleaochexist
        23
    chaleaochexist  
       2022-08-01 10:19:39 +08:00
    所以楼书开了十几个 vsc remote 窗口吗?
    哪种 remote 模式? container 还是 ssh

    为什么我开了四五个 就崩溃了.
    chaleaochexist
        24
    chaleaochexist  
       2022-08-01 10:19:54 +08:00
    四五个就有一个断开连接.
    Chingim
        25
    Chingim  
       2022-08-01 10:27:45 +08:00
    @stanjia 这个规格一般是容器化的开发环境
    whitedroa
        26
    whitedroa  
    OP
       2022-08-01 10:40:04 +08:00
    @jnqcMer2019 卧槽,我的开发机$HOME 也是个软连接,赶紧去试试

    @stanjia 公司提供的高规格虚拟机,intel 8260 芯片的

    @daveh gateway 已经用过了,经常会断联。而且 gateway 也会消耗很多本地资源
    @littlewing 有啊,右击不就可以看到了吗
    @Citrus gopls 开启"ui.semanticTokens": true ,就有真正的代码高亮了。
    代码补全建议开启 "go.autocompleteUnimportedPackages": true,


    @chaleaochexist 没错,经常打开十几个 vscode remote 窗口。remote-ssh

    @ikidou jetbrains 家的远程开发,现在真的是一言难尽
    Zizpop
        27
    Zizpop  
       2022-08-01 11:17:40 +08:00   ❤️ 1
    智能提示由插件提供, 需要你看一下插件有啥问题, 或者 remote 主机性能受限
    timeline 的问题试一下`reload window`呢, 或者关掉窗口重新`open floder`
    jnqcMer2019
        28
    jnqcMer2019  
       2022-08-01 11:27:41 +08:00
    @whitedroa 看到楼主之前的帖子有 bytevm ,应该是字节的。其实这好像是 git 的问题不是 vscode 的问题
    gitopen
        29
    gitopen  
       2022-08-01 14:58:17 +08:00
    楼主试一试 code-server 把。写代码只需要打开浏览器了。
    Frytea
        30
    Frytea  
       2022-08-02 08:58:23 +08:00
    多项目+海量代码我选择 sublime + sftp ,

    搜索代码索引速度相比 vscode 顺滑太多。
    daveh
        31
    daveh  
       2022-08-04 12:09:30 +08:00 via iPhone
    @whitedroa Gateway 断连是不应该检测一下网络问题?我远程用 WebStorm ,调试状态挂了 n 天都不断。
    当然 gateway 还是 beta 阶段,如果是 gateway 问题导致断连,可以试试新版本,另外就像前面说的,远程其实跑的是完整 IDE ,远程 host 设置中内存要给足,远程机也不能太差,至少内存要足够。

    如果重启本机断连后,下次重连 gateway ,会恢复原来工作状态,比如断连前还在调试,重连后还是调试状态。vs code 断开后重连,不知道是不是这样?还能接着上次的调试?

    另外本机客户端,内存一般 1G 以内,资源占用也还好吧。
    chaleaochexist
        32
    chaleaochexist  
       2022-10-17 08:46:20 +08:00
    大佬没试试用 workspace 吗?
    hanssx
        33
    hanssx  
       2022-12-01 17:04:05 +08:00
    @chotow 老哥最后怎么解决的?
    chotow
        34
    chotow  
       2022-12-01 18:41:41 +08:00 via iPhone
    @hanssx #33 试过 X11 转发,不知道是不是我的姿势不对,带宽占用高,不流畅,直接放弃。
    JetBrains 的 Fleet 也有远程开发了,简单试了下,比 Gateway 好,但感觉还是不够,等正式版再看看。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2768 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 09:30 · PVG 17:30 · LAX 01:30 · JFK 04:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.