Golang 搭建環(huán)境匯總 goland+vscode

一蛔趴、收費的goland IDE

GoLand破解

參考
Jetbrains 家族利器之 Gogland 簡明教程
Goland 調(diào)試 Go(有介紹如何Debug)
mac:Go安裝和配置+GoLand安裝和使用之完整教程
Jetbrains系列產(chǎn)品2019.2.3最新激活方法[持續(xù)更新]

image.png

在項目hello文件夾下罢杉,我新建了一個src文件夾,這是go的默認(rèn)用法。一般都將項目代碼放在src文件夾下。代碼中所有引用的第三方包路徑,前綴都默認(rèn)是"項目名/src/第三方包路徑”栽渴。 如main.go中引用第三方包:import “golang.org/x/net/websocket”尖坤,那么該包必須位于“hello/src/”文件夾下,否則將找不到該依賴包而編譯出錯闲擦。

2.使用gofmt格式化代碼

在Goland中慢味,可以通過添加一個File Watcher來在文件發(fā)生變化的時候調(diào)用gofmt進(jìn)行代碼格式化,具體方法是墅冷,點擊Preferences -> Tools -> File Watchers纯路,點加號添加一個go fmt模版,Goland中預(yù)置的go fmt模版使用的是go fmt命令寞忿,將其替換為gofmt驰唬,然后在參數(shù)中增加-l -w -s參數(shù),啟用代碼簡化功能腔彰。添加配置后叫编,保存源碼時,goland就會執(zhí)行代碼格式化了霹抛。

3.WebStorm 關(guān)閉自動保存

goland和webstorm是一樣的設(shè)置


image.png

第一個是激活當(dāng)前窗口時保存搓逾,第二個是切換到其他窗口的時候(當(dāng)前窗口沒有被激活)保存,最后一個是重點杯拐,其實是關(guān)掉最后一個選項就好霞篡,那個叫安全寫入,方法就是重命名源文件端逼,只要能重命名成功就會覆蓋掉源文件來達(dá)到安全自動保存的目的朗兵,所以這個安全會不停的保存源文件。關(guān)掉這個選項就只會在很少的情況下自動保存顶滩。所有的四個選項全部關(guān)掉就只能手動保存矛市。


image.png

四個全關(guān)后,要把Mark modified打開诲祸,要不然不知道哪些是編輯過的文件浊吏。

4.protobuf插件

https://github.com/protostuff/protobuf-jetbrains-plugin
https://plugins.jetbrains.com/plugin/8277-protobuf-support

5.golint或revive

https://revive.run/docs
https://github.com/mgechev/revive
參考goland配置golint
使用go get -u github.com/mgechev/revive安裝完成后,在bin目錄下能找到revive.exe

image.png

然后設(shè)置keymap快捷鍵時救氯,如果找不到External Tools里的revive找田,可以重啟一下goland就能找到了挑势。

6.添加自己的Project Path

如果使用go get安裝的第三方引用不到悉抵,可以在Goland的File菜單中讯榕,打開Settings,檢查Global GoPATH里是否有自己設(shè)置的gopath赡艰,比如我的就是[GoPATH] D:\go,這樣D:\go\src\github.com...里面所有的安裝包蒲跨,就能正常import了满着。

當(dāng)我們自己創(chuàng)建包時,也需要加入Project Path挫剑,比如mymath包里放個square.go

package mymath

func Square(x int) int {
    x = 4
    return x * x
}

image.png

image.png

這樣就可以正確引用自己的mymath包了去扣。

注:每個代碼文件都屬于一個包,而包名應(yīng)該與代碼文件所在的文件夾同名樊破。

7.設(shè)置按照 package 或 Directory編譯

建議先打開goland的Toolbar


image.png
1愉棱、golang go run undefined 同一個package中函數(shù)互相調(diào)用的問題
//a.go
package main

func main(){
    Test()
}

//b.go

package main

import "fmt"

func Test(){
    fmt.Println("Hello gopher!")
}

編譯的結(jié)果如下:

D:\goWork\src\test>go run a.go
# command-line-arguments
.\a.go:4:2: undefined: Test

正常來說同一個package下,函數(shù)是可以相互調(diào)用的哲戚,不應(yīng)該報錯奔滑, 出現(xiàn)這種問題的原因是沒有對這個package整體進(jìn)行編譯, 也就是說只編譯了部分

找到了問題顺少,針對進(jìn)行解決就可以了朋其, 只要找到可以整體編譯的方法就可以了,我試過可行的幾種如下:

(1)多個.go文件一起編譯運行

D:\goWork\src\test>go run a.go b.go
Hello gopher!

(2)直接運行這個package

D:\goWork\src\test>go run ./
Hello gopher!

(3)Run kind Directory


image.png
image.png
二脆炎、VS CODE
image.png

如果是管理員賬戶登錄的令宿,就不要下載User Installer版本,否則安裝時會彈出提示


image.png

需要去下載System版本的才可以

1.目前安裝的插件
  • chinese
  • go
  • code runner
2.參考一招完美解決vscode安裝go插件失敗問題

新建一個Go工程腕窥,vscode會提示安裝各種插件粒没。這里因為某些原因,總是安裝失敗簇爆。
這里需要 使用go mod 代理來安裝
https://goproxy.io是一個國內(nèi)的代理癞松,命令行執(zhí)行

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct

關(guān)閉vscode重新打開,再次點擊install all 即可

3.vscode go 調(diào)試 launch.json
{
    // 使用 IntelliSense 了解相關(guān)屬性入蛆。 
    // 懸停以查看現(xiàn)有屬性的描述响蓉。
    // 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "golang",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            //當(dāng)運行單個文件時{workspaceFolder}可改為{file}
            "program": "${file}",
            "env": {},
            "args": []
        }
    ]
}

4.exported function ... should have comment or be unexported

vscode-go 設(shè)置 lint 不強制檢查對包公開類型是否注釋

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末哨毁,一起剝皮案震驚了整個濱河市枫甲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌扼褪,老刑警劉巖想幻,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異话浇,居然都是意外死亡脏毯,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門幔崖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來食店,“玉大人渣淤,你說我怎么就攤上這事〖郏” “怎么了价认?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長自娩。 經(jīng)常有香客問我用踩,道長,這世上最難降的妖魔是什么椒功? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮智什,結(jié)果婚禮上动漾,老公的妹妹穿的比我還像新娘。我一直安慰自己荠锭,他們只是感情好旱眯,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著证九,像睡著了一般删豺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上愧怜,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天呀页,我揣著相機與錄音,去河邊找鬼拥坛。 笑死蓬蝶,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的猜惋。 我是一名探鬼主播丸氛,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼著摔!你這毒婦竟也來了缓窜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤谍咆,失蹤者是張志新(化名)和其女友劉穎禾锤,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體摹察,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡时肿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了港粱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片螃成。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡旦签,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出寸宏,到底是詐尸還是另有隱情宁炫,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布氮凝,位于F島的核電站羔巢,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏罩阵。R本人自食惡果不足惜竿秆,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望稿壁。 院中可真熱鬧幽钢,春花似錦、人聲如沸傅是。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喧笔。三九已至帽驯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間书闸,已是汗流浹背尼变。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留浆劲,地道東北人享甸。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像梳侨,于是被迫代替她去往敵國和親蛉威。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容

  • 錯誤原因:繼承的類沒有傳數(shù)據(jù)類型
    沒風(fēng)的地方閱讀 2,054評論 0 0
  • 遙望南湖夜夢涼走哺,一杯淡茶慰柔腸蚯嫌。 飛雪癡情梨花淺,流云愁纏野草長丙躏。 不問嬋娟誰伴舞择示,卻憐燕子未成雙。 醒來淚染孤枕...
    逸塵居士閱讀 228評論 0 0
  • 在(1)中我講了一個電燈的例子晒旅,用開關(guān)來控制等的狀態(tài)的變化栅盲,現(xiàn)在把它用react-native/redux來實現(xiàn)了...
    smartphp閱讀 3,694評論 3 8
  • 錢塘湖春行 【唐】白居易 孤山寺北賈亭西谈秫,水面初平云腳低扒寄。 幾處早鶯爭暖樹,誰家新燕啄春泥拟烫。 亂花漸欲迷人眼该编,淺草...
    聞君兒閱讀 2,121評論 0 0
  • 創(chuàng)19:24-26當(dāng)時课竣,耶和華將硫磺與火,從天上耶和華那里置媳,降與所多瑪和蛾摩拉于樟,把那些城和全平原,并城里所有的居民...
    楊春靖閱讀 407評論 0 1