VsCode Go插件配置最佳實踐指南
VsCode Go插件工作原理
VsCode Go的正確安裝方式
VsCode Go插件依賴的工具
go tools
go path配置
go mod相關
VsCode Go插件在Go項目中的正確配置
如何運行
如何Debug
VsCode Go插件的那些常用快捷
寫在最后
求關注
VsCode Go插件工作原理
原理
VsCode Go插件的工作原理與其它的ide是不一樣的疯搅,比如idea(goland),它是通過一系列go的小工具來完成ide的相關功能冕屯。比如智能提示桐早,代碼導航(查看引用,查看源碼栈戳,查看接口)岂傲,符號搜索,括號匹配子檀,代碼段之類的語言功能等镊掖。
但是如果是啟用了go language server,那就是用的vscode的lsp來工作的褂痰,不是用go的小工具堰乔,推薦大家用go language server.
為什么你的VsCode Go插件不能正常工作
那些插件所依賴小工具如果不能正確工作(比如沒有正確安裝,比如版本不對脐恩,go path不對镐侯,沒有下載成功),你的VsCode Go插件不能工作驶冒。
VsCode Go的正確安裝方式
先從擴展管理中安裝Go插件
VsCode Go插件依賴的工具
安裝Go插件所依賴的go tools
按ctrl+shift+p 調出命令面板苟翻,輸入go install tools 選Go: Install/Update Tools
go tools
這個階段可能會失敗。
很多人就卡在這一步就進行不下去了骗污。這個得自己想一下辦法崇猫。網(wǎng)上現(xiàn)在的辦法都是讓你去下載下來放到某個目錄,心智負擔太大還容易搞錯需忿。
我介紹2個方法
方法1:開國外vpn或者代理诅炉,讓它安裝成功。
方法2:設置go proxy.
go env -w GOPROXY=https://goproxy.cn清空緩存 go clean --modcache
go path配置
gopath直接在環(huán)境變量中設置就可以了屋厘,不用單獨在vscode中設置涕烧。
關于go path的設置,還有一個問題汗洒,就是要不要設置2個的問題议纯。
設置2個的目的是為了將工程放在第二個gopath下面,第一個是放go get的
在設置2個的時候溢谤,執(zhí)行go get的會默認下載到一個gopath瞻凤,但這個對于vscode來說可能會有點問題。
vscode中可以為在vscode中安裝的go tools設置一個單獨的目錄具體設置項為 Tools Gopath世杀,使用ctrl+, 然后輸入tools gopath 阀参,在下方填你想獨立存放剛才第二步安裝的工具的存放的地方了。
Go: Tools GopathLocation to install the Go tools that the extension depends on if you don't want them in your GOPATH.
go mod相關
如果你現(xiàn)在使用了go mod模式瞻坝,就不用糾結配置幾個gopath的問題蛛壳,只配置一個就好了。vscode的go mod支持需要啟用language server按ctrl+, (注意是ctrl + 英文狀態(tài)的逗號)調出配置界面,輸入go.lang
把 Use Language Server設置選中狀態(tài)即開啟了gopls了炕吸,這時vscode就會很好的支持go mod類型的項目了伐憾。
VsCode Go插件在Go項目中的正確配置
如何運行
如果是一個單獨的main.go這種,現(xiàn)在你的vscode應該可以工作了赫模,但是在工程里面可能不行树肃。
工程一般有2種 結構
一種是有src目錄,就是go 代碼放在工程目錄下面的src目錄下面瀑罗,這就可能會導致一些項目不能正確加載胸嘴,比如非go mod項目。
這時候在工程目錄下面建一個.vscode目錄斩祭,然后在.vscode目錄下面創(chuàng)建.settings.json文件
在里面設置gopath
如果你的main包不在src目錄下面劣像,則需要設置cwd,也就是工作時切換到的目錄
這時候可以選中你的main.go摧玫,按ctrl+F5耳奕,start Without Debuging,開始運行了.
說一點诬像,如果是go mod的工程屋群,這個gopath就不需要配置了.
如何Debug和運行
vscode里面正常的工程項目main包一般在cmd下面,不同的項目可能不同坏挠,但一定有一個main包芍躏。
選中你的main.go,按F5降狠,這時就會彈出一個需要創(chuàng)建launch.json对竣,點create a launch.json,直接默認的選中go榜配,就會在.vscode目錄下生成一個launch.json文件
生成的launch.json如下
這時候一般的程序都可以開始調試了否纬,但是如果你的main.go啟動是需要一些配置文件話,需要配置一個cwd的屬性.
cwd - current working directory for finding dependencies and other files
加上cwd的屬性如下
到此芥牌,設置好斷點烦味,選中入口文件,按F5就可以進入debug了壁拉,然后f10單步之類的快捷鍵,可以看界面上的提示柏靶,自己點幾下就知道好玩了.
VsCode Go插件的那些常用快捷
ctrl+p 文件搜索快捷鍵
ctrl+shift+p 命令快捷鍵
ctrl+shift+k 刪除一行
alt+左方向鍵 回到上一次編輯的地方
ctrl+鼠標左鍵弃理,跳到方法定義的地方
寫在最后
要不要切換到vscode,這個不重要屎蜓,重要的是你選擇一個ide并靈活熟練使用它.還有痘昌,最后,盡量不要使用破解版本的idea(goland).
求關注
做服務端開發(fā)已經(jīng)有十多年了,熟悉java辆苔,golang算灸,Python,對大數(shù)據(jù)和機器學習驻啤,也有一些鉆研菲驴,歡迎關注和交流。