forgottenPerson
V2EX  ›  问与答

求助: vscode 通过 ssh 连接虚拟机,此时 windows 中的 vscode go 无法自动补全

  •  
  •   forgottenPerson · Jan 2, 2024 · 1457 views
  •   You need to sign in to view this topic
    This topic created in 1039 days ago, the information mentioned may be changed or developed.

    本地 vscode go 可以自动补全代码,比如你输入 time 有个框,里面有 time 相关的常量以及函数 虚拟机中的 vscode 功能没有问题,就远程连接虚拟机 vscode 写 go 代码不能自动补全代码 ,vscode 远程连接虚拟机通过 vscode terminal vim 中的 go 开发也没有问题

    配置: 虚拟机中通过 gvm 安装 go,模块开启,代理也设置好了,远程连接所需插件安装好了,gopath 也配置好了,go tools 是手动安装的,vscode 远程连接无法下载 go tools,所以手动下载的

    虚拟机 linux os :debian

    目的:通过 vscode 远程连接享受 bash ,以及 Linux 上的开发

    Jony4Fun
    Jony4Fun
    Jan 2, 2024
    1
    要不试一下远程连接的时候,ctrl+shift+p ,输入 go locate configured go tools
    forgottenPerson
    forgottenPerson
    OP
    Jan 2, 2024
    2
    @Jony4Fun 显示 go.locate.tools not found ,之前 go install/update tools 也是未找到,所以通过 go install 手动安装的哪些工具。
    forgottenPerson
    forgottenPerson
    OP
    Jan 2, 2024
    3
    有可能因为是 ssh 连接的本机虚拟机,而不是真正的远程服务器,可能导致这两个命令 not found,因为下载插件比如 vscode go 插件的时候需要先下载,之后才能在 ssh 连接下的 ip 下下载此插件。

    远程连接真正服务器时下载插件的时候里面有个 ip 地址,你点击这个 ip 地址就能下载,本机是不下载这个插件。
    Jony4Fun
    Jony4Fun
    Jan 2, 2024❤️1
    4
    你的描述有点混乱,要不贴一下你的 go install/update tools 命令敲完 output 里的结果?以及左下角那个 ssh 连接到的虚拟机的地址。

    简单来说,vscode 就是个 C/S 架构的 IDE ,一般情况,无论是在本机写本地的,还是 vm 里写 vm 的,都是 C 和 S 在同一台机子的情况。而 remote ssh 是 C 在你本机,S 在你的 VM 里。
    forgottenPerson
    forgottenPerson
    OP
    Jan 3, 2024
    5
    重新起了一个 go 项目,又可以了。
    Jony4Fun
    Jony4Fun
    Jan 3, 2024
    6
    @forgottenPerson 所以 root cause 是啥,怪好奇的。难道是没有 go mod init ?
    forgottenPerson
    forgottenPerson
    OP
    Jan 3, 2024
    7
    @Jony4Fun 不是没有 go mod init . ssh 连接虚拟机的时候.vscode-server 这里面的 GOPATH 、GOROOT 没有变(在这之前已经用 gvm 或者 go 改变了 GOPATH 、GOROOT ,但是这个文件夹下面相关 goroot gopath 没有变,还是以前的,而你通过 go env 命令 gopath go root 已经变了)
    forgottenPerson
    forgottenPerson
    OP
    Jan 3, 2024
    8
    @Jony4Fun 就是说无论你在 vscode reload window 还是重连 ssh 或者重启虚拟机,ssh 连接下的.vscode-server 中的 goroot 、gopath 和你通过 go env 或者 gvm pkgset 已经修改的 goroot 、gopath 不一致
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1753 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 13:31 · PVG 21:31 · LAX 05:31 · JFK 08:31
    ♥ Do have faith in what you're doing.