在vscode中go編碼發生的問題整理
阿新 • • 發佈:2021-03-17
## 引言
使用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](https://gitee.com/happlyfox/img/raw/master/image-20210317163139745.png)
3、我們在這個輸入框中輸入`>go:install`,下面會自動搜尋相關命令,我們選擇`Go:Install/Update Tools`這個命令,按下圖選中並會回車執行該命令
在彈出的視窗選中所有,並點選“確定”按鈕,進行安裝。
![image-20210317084851704](https://gitee.com/happlyfox/img/raw/master/image-20210317084851704.png)
等待安裝完成,因為國內網路的特殊性,所以一定要誰知好go的代理源,不然總是下載失敗。
執行這一步之後,重啟Vscode,如果這個時候能夠解決你的問題,那就不需要再往下看了。
## 具體問題解決方案
**如果以上步驟不能解決你的問題,那就可以對應自己的問題來進行操作設定了。**
### 一、VSCode中F12無法跳轉
#### 通用設定
點選左下角點選齒輪,選擇設定介面(也可以直接快捷鍵`CTRL+,` 點選使用者-擴充套件-go。進行如下設定
1、DocsTool修改成godoc
![image-20210317090407649](https://gitee.com/happlyfox/img/raw/master/image-20210317090407649.png)
2、Use Language Server 去掉勾選
![image-20210317090415647](https://gitee.com/happlyfox/img/raw/master/image-20210317090415647.png)
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 基本使用](https://www.cnblogs.com/chnmig/p/11806609.html)
[vscode go 未找到任何定義](https://blog.csdn.net/MondaysMonkey/article/details/107418229)
## 關於我
[我的部落格|文章首發](http://www.zhouhuibo.club)
## 最後
本文到此結束,希望對你有幫助