Golang学习日志 ━━ VSCode安装Go插件(代理的使用)及初用mod

本文详细介绍如何在VSCode中配置Golang环境,包括安装Golang、VSCode、配置代理、下载gotools以及gomod的使用方法。文章还提供了详细的步骤和截图,帮助读者顺利搭建Golang开发环境。

根据Golang 1.14.4版本

插件安装

先声明,本人入门的时候使用的是Liteide,现在虽然在用vscode,但还是感觉Liteide用着更顺。

1.参考本文安装Golang

Golang学习日志 ━━ 下载及安装

2.安装VSCode

vscode中按ctrl+shift+x,输入框内搜索Go,选择第一个点击install安装;或者新建一个 .go 文件,用vscode打开会自动提示安装。
在这里插入图片描述

3.配置代理

除了go最基础安装没问题,其余扩展插件安装几乎都被墙,因此我们需要用到代理。

访问https://goproxy.io/zh/,在document(文档)菜单下找到windows的配置方式
在这里插入图片描述

1. 右键 我的电脑 -> 属性 -> 高级系统设置 -> 环境变量
2. 在 “[你的用户名]的用户变量” 中点击 ”新建“ 按钮
3. 在 “变量名” 输入框并新增 “GOPROXY”
4. 在对应的 “变量值” 输入框中新增 “https://goproxy.io”
5. 最后点击 “确定” 按钮保存设置

如果代理地址不行网上很多代理可以换一下,例如Goproxy 中国说明)。

配置完成图:
godule 和 goproxy
这里的GO111MODULE 是为了用go mod

4. 下载go tools
  1. 下载安装

打开vscode view -> Command palette(命令面板)->搜索 Go:install/update Tools ->点击进入tools全选(亦可ctrl+shift+p后再选),点击ok,等着安装即可。
如果出现失败就换下代理地址,安装后重启vs
在这里插入图片描述
如果正常安装,可能提示如下:

Tools environment: GOPATH=F:\Projects\Golang\System
Installing 0 tool at F:\Projects\Golang\System\bin in module mode.

All tools successfully installed. You are ready to Go. :)
Installing github.com/cweill/gotests/gotests@latest (F:\Projects\Golang\System\bin\gotests.exe) SUCCEEDED
Installing github.com/fatih/gomodifytags@latest (F:\Projects\Golang\System\bin\gomodifytags.exe) SUCCEEDED
Installing github.com/josharian/impl@latest (F:\Projects\Golang\System\bin\impl.exe) SUCCEEDED
Installing github.com/haya14busa/goplay/cmd/goplay@latest (F:\Projects\Golang\System\bin\goplay.exe) SUCCEEDED
Installing github.com/go-delve/delve/cmd/dlv@latest (F:\Projects\Golang\System\bin\dlv.exe) SUCCEEDED
Installing honnef.co/go/tools/cmd/staticcheck@latest (F:\Projects\Golang\System\bin\staticcheck.exe) SUCCEEDED
Installing golang.org/x/tools/gopls@latest (F:\Projects\Golang\System\bin\gopls.exe) SUCCEEDED

All tools successfully installed. You are ready to Go. :)
  1. 工具配置

如果全选安装后别忘了还需要打开文件->首选项->设置->在 setting.json 中进行设置

"go.goroot": "",
"go.gopath": "",
"go.inferGopath": true,
"go.autocompleteUnimportedPackages": true,
"go.gocodePackageLookupMode": "go",
"go.gotoSymbol.includeImports": true,
"go.useCodeSnippetsOnFunctionSuggest": true,
"go.useCodeSnippetsOnFunctionSuggestWithoutType": false,
"go.docsTool": "gogetdoc",

go mod 一种包的管理方式

modules和传统的GOPATH不同,不需要包含例如src,bin这样的子目录,一个源代码目录甚至是空目录都可以作为module,只要其中包含有go.mod文件。

我们用一个空目录来创建我们的第一个module:

要初始化modules,需要使用如下命令 go mod init 包名

在这里插入图片描述
会在对应的目录下生成一个go.mod 文件
接下来编写helloworld
在这里插入图片描述

环境变量配置,代理配置,vs安装tools 和插件之后都要重启vscode。。。。

参考

使用 VSCode 搭建 Go 语言开发环境时,如果保存 Go 文件后出现卡顿,且未触发格式化和自动补全操作,可能是由以下几个原因造成的: ### 1. **语言服务器(gopls)配置问题** - VSCodeGo 插件依赖 `gopls` 作为语言服务器来提供格式化、自动补全、跳转定义等功能。如果 `gopls` 没有正确配置或版本不兼容,可能导致保存文件时响应缓慢或无响应。 - 可以通过查看 `Output > Log (Extension Host)` 中的 `gopls` 输出日志来排查问题。如果发现错误信息,尝试更新 `gopls` 到最新版本,或者重新安装它[^1]。 ### 2. **Go 工具链未正确安装** - 如果未正确安装 Go 工具链(如 `gofmt`、`goimports`、`gocode` 等),VSCode 将无法执行格式化和自动补全操作。 - 确保所有必要的工具已安装。可以通过 `Go: Install/Update Tools` 命令安装缺失的工具。特别是 `gocode` 和 `gopls` 对自动补全至关重要[^1]。 ### 3. **项目依赖未正确加载** - 如果项目使用 Go Modules(即存在 `go.mod` 文件),但依赖未正确下载或缓存损坏,可能导致编辑器在保存时卡顿。 - 执行 `go mod tidy` 来清理未使用的依赖并下载缺失的依赖[^2]。也可以尝试删除 `go.sum` 文件和模块缓存目录(位于 `$GOPATH/pkg/mod`),然后重新运行 `go mod download`。 ### 4. **VSCode 插件配置问题** - 检查 VSCodeGo 插件是否启用了保存时格式化和自动补全功能。确保以下设置已启用: ```json "go.formatOnSave": true, "go.gofmtFlags": [], "go.useLanguageServer": true, "go.autocompleteUnimportedPackages": true ``` - 如果使用的是 Go Modules,确保 `go.useLanguageServer` 设置为 `true`,以启用 `gopls` 的完整功能。 ### 5. **系统资源限制或大文件处理** - 如果编辑的 Go 文件较大,或者系统资源(如内存或 CPU)受限,也可能导致保存操作卡顿。 - 可以尝试关闭不必要的扩展或优化项目结构,减少单个文件的代码量。此外,确保 `gopls` 的日志中没有长时间阻塞的操作。 ### 6. **gocode 服务异常** - 如果不使用 `gopls` 而是依赖 `gocode` 提供自动补全功能,`gocode` 服务可能因异常而停止响应。 - 可以尝试在终端中运行 `gocode -s -debug` 来查看详细输出,并根据日志排查问题。如果发现服务异常,可以尝试关闭并重启 `gocode` 服务[^1]。 ### 7. **文件系统或编辑器缓存问题** - 有时文件系统缓存或 VSCode 的缓存可能导致保存操作异常。 - 可以尝试重启 VSCode,或者清除 VSCode 的缓存目录(通常位于 `~/.vscode` 或 `%APPDATA%\Code`)。对于 macOS 用户,缓存路径通常为 `~/Library/Application Support/Code`。 --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值