VsCode Go插件配置最佳實踐指南

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ù)和機器學習驻啤,也有一些鉆研菲驴,歡迎關注和交流。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末骑冗,一起剝皮案震驚了整個濱河市赊瞬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌贼涩,老刑警劉巖巧涧,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異遥倦,居然都是意外死亡谤绳,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門袒哥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闷供,“玉大人,你說我怎么就攤上這事统诺⊥嵩啵” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵粮呢,是天一觀的道長婿失。 經(jīng)常有香客問我,道長啄寡,這世上最難降的妖魔是什么豪硅? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮挺物,結果婚禮上懒浮,老公的妹妹穿的比我還像新娘。我一直安慰自己识藤,他們只是感情好砚著,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著痴昧,像睡著了一般稽穆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赶撰,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天舌镶,我揣著相機與錄音柱彻,去河邊找鬼。 笑死餐胀,一個胖子當著我的面吹牛哟楷,可吹牛的內容都是我干的。 我是一名探鬼主播否灾,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼卖擅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了坟冲?” 一聲冷哼從身側響起磨镶,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎健提,沒想到半個月后琳猫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡私痹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年脐嫂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片紊遵。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡账千,死狀恐怖,靈堂內的尸體忽然破棺而出暗膜,到底是詐尸還是另有隱情匀奏,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布学搜,位于F島的核電站娃善,受9級特大地震影響,放射性物質發(fā)生泄漏瑞佩。R本人自食惡果不足惜聚磺,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望炬丸。 院中可真熱鬧瘫寝,春花似錦、人聲如沸稠炬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽酸纲。三九已至捣鲸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間闽坡,已是汗流浹背栽惶。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留疾嗅,地道東北人外厂。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像代承,于是被迫代替她去往敵國和親汁蝶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內容