我安装的是go的1.17版本,之后安装了VScode,VScode版本应该不会影响编程。首先遇到了VSCode下载go插件失败的问题,经过一系列折腾找出了问题,如果你也有此问题,可参考如下。

VS Code 安装go插件失败分析及解决方案_一越王超的博客-CSDN博客

接下来准备编程,可是遇到了没有代码提示的问题,在网上找了很多方法,如下:

方法一:在setting.json添加如下配置:

"go.useLanguageServer": true

 结果,失败!!!

方法二:处理gocode

问题:自动补全功能停止工作。应该怎么做?

1. 在终端中运行 gocode close,然后再试试。

2. 如果仍然有问题,运行go get -u github.com/mdempsky/gocode ,更新下工具。

3. 如果还有问题,运行 gocode -s -debug,然后再试试。

 结果,失败!!!

 方法三:GO111MODULE设置为off

  1. 将环境变量中GO111MODULE改成auto或者 off
  2. 然后去 重新下载go get -v github.com/veandco/go-sdl2/sdl go-sdl2 将会安装到src/github.com/...目录下。下载完成之后在开发工具vscode中使用 sdl2. 将会发现原来的配方,熟悉的提示。亲测公司和本人的两台电脑管用。
  3. 之后你可以在切换为GO111MODULE=on,代码提示不受影响。题外话:go module的出现可以使你开发代码目录下不会出现过多的第三方包.

 结果,失败!!!

方法四:还是处理gocode

初学go,配置好后一直没用,今天用vscode编辑go,突然发现go代码不提示了,非常难受,上网查了一下,加上自己测试,得出如下解决方法。

go get -u -v github.com/mdempsky/gocode

先运行这个,重新编译gocode程序,gocode程序就是负责代码提示的,不提示了,一是可能没安装,二是可能安装了,但是代码旧了,我这就属于这种情况,以前安装了,后来升级了go,但是gocode没有升级编译,这个代码就是重新下载新的,然后重新编译。

编译完成后,如果还不管用,就关闭gocode  

gocode close

gocode exit 

然后关闭vscode,再重新启动vscode。

另外,还要记得把vscode的目录配置到当前编辑的目录。

 结果,失败!!!

 方法5:配置环境变量 后重启

  1. 配置环境变量
    1.1 打开“开始”并搜索“env”
    1.2. 选择“编辑系统环境变量”
    1.3. 点击“环境变量…”按钮
    1.4. 在“<你的用户名> 的用户变量”章节下(上半部分)
    1.5. 点击“新建…”按钮
    1.6. 选择“变量名”输入框并输入“GO111MODULE”
    1.7. 选择“变量值”输入框并输入“on”
    1.8. 点击“确定”按钮
    1.9. 点击“新建…”按钮
    1.10. 选择“变量名”输入框并输入“GOPROXY”
    1.11. 选择“变量值”输入框并输入“https://goproxy.cn”
    1.12. 点击“确定”按钮

     
  2. 更新go tools 
    2.1 快捷键:ctrl +shift +P
    2.2 选中第一个 UpdateTools
  3. 选中所有工具
  4. 重新打开vscode,已经增加  代码提示

结果,失败!!!

惊不惊喜,意不意外,这么多的方法竟然没有一个成功!!! 

难道强大的网络竟然找不出一个能解决这个小问题的方法吗???

最后,经过一天一夜的奋斗,我还是找出了问题所在。竟然是GOPATH的配置问题。

步骤1:首先,查看GOPATH\bin路径下是不是都有了如下插件执行文件。 

C:\GoLang\GoPath\bin

没有的话参考如下文章处理

VS Code 安装go插件失败分析及解决方案_一越王超的博客-CSDN博客https://yiyuewangchao.blog.csdn.net/article/details/124509832

步骤2:进入“控制面板\所有控制面板项\系统” 的高级环境变量设置,点击环境变量。注意

两个Path 需要设置一致,都引用GOROOT和GOPATH带bin目录。

%GOROOT%\bin
%GOPATH%\bin

步骤3:然后注意GOPATH和GOROOT设置路径不用到内部的bin目录。

步骤4:重启电脑和VSCode,问题解决。

说明:

GOPATH 的目录结构如下:

 

$GOPATH
  bin/                       # Directory where executable binaries are stored
  src/                       # Directory where Go source files of the dependent packages are stored
    github.com/google/go-cmp/
      ...
  pkg/                       # Directory where compiled Go object files are stored
    ..

其中:

  • bin 存放编译后生成的可执行文件
  • src 存放源码
  • pkg 则存放编译后的包内容

而 Go 1.11 之前,我们通过 go get xxx 安装的包则存在于上述 $GOPATH/src 目录下。而新版 Go 中,通过设置 GO111MODULE=off 表示使用旧的模块管理方式安装,安装后则包会存放在 $GOPATH 下。

随着版本推进,只要项目有 go.mod 无论在 $GOPATH 内外都使用 module 方式。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐