GoPath模式和GoMoudle模式的相爱相杀 |Go主题月

747 阅读3分钟

关于我

文章首发 | 我的博客 | 欢迎关注

引言

使用VsCode进行Go程序开发,我们肯定会碰到一些问题,这些问题有些是IDE的配置问题,有些是下载包的版本不一致问题,本文主要针对在开发过程中碰到的问题做一个简单的回顾和整理。

前期准备,必看

在进行问题纠错前,先确保自己正确下载了golang的官方工具集go-tool,如果不确定,就跟着我的步骤操作一遍,可能操作后,你的问题就解决了。

1、配置golang的源。

go env -w GOPROXY=https://goproxy.cn,direct

然后我们进行golang工具的默认工具服务下载:

2、Windows平台按下Ctrl+Shift+P,Mac平台按Command+Shift+P,这个时候VS Code界面会弹出一个输入框

image-20210317163139745

3、我们在这个输入框中输入>go:install,下面会自动搜索相关命令,我们选择Go:Install/Update Tools这个命令,按下图选中并会回车执行该命令

在弹出的窗口选中所有,并点击“确定”按钮,进行安装。

image-20210317084851704

等待安装完成,因为国内网络的特殊性,所以一定要谁知好go的代理源,不然总是下载失败。

执行这一步之后,重启Vscode,如果这个时候能够解决你的问题,那就不需要再往下看了。

具体问题解决方案

如果以上步骤不能解决你的问题,那就可以对应自己的问题来进行操作设置了。

一、VSCode中F12无法跳转

通用设置

点击左下角点击齿轮,选择设置界面(也可以直接快捷键CTRL+, 点击用户-扩展-go。进行如下设置

1、DocsTool修改成godoc

image-20210317090407649

2、Use Language Server 去掉勾选

image-20210317090415647

3、重启VsCode

go mod模式

如果进行上述操作后还是不行,并且你是使用的go mod 模式,那还有一种比较特殊的方式可以解决这个问题。

执行命令go mod vendor导入依赖,这一步会将依赖转移至该项目根目录下的 vendor(自动新建) 文件夹下

此时F12就可以进行代码跳转了。

二、代码自动带出功能失效

这个问题一般都是因为 go mod模式的切换导致的。如果你的项目是使用的Gopath模式(如果有同学对Gopath和Gomod这俩种模式不了解的,可以看看我的文章如何看待go moudle并应用于工作),那么你需要设置

go env -w GO111MODULE=off

这时候自动带出功能就可能正确使用了

如果你使用的是go mod模式,设置

go env -w GO111MODULE=on

自动带出功能也可以恢复正常。

文章参考

go module 基本使用

vscode go 未找到任何定义

推荐阅读

Redis工具收费后新的开源已出现

GitHub上Star最高的工程师技能图谱

中国程序员最容易发错的单词

推荐!!! Markdown图标索引网站

最后

本文到此结束,希望对你有帮助 😃

如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。

更多精彩技术文章汇总在我的 公众号【程序员工具集]】,持续更新,欢迎关注订阅收藏。