在vscode中go編碼發生的問題整理

happlyfox發表於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

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 未找到任何定義

關於我

我的部落格|文章首發

最後

本文到此結束,希望對你有幫助 ?

如果還有什麼疑問或者建議,可以多多交流,原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知。

更多精彩技術文章彙總在我的 公眾號【程式設計師工具集]】,持續更新,歡迎關注訂閱收藏。

wechat.png

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章