前言
截止到目前為止,Go語言已經更新到1.14.1,網上的很多教程均已經過時,我在此匯總並整理一下相關的教程,提供一個適合當下的Mac OS教程。
教程中使用了Go在1.11之后推出的依賴包管理工具Go Modules[1],並使用了gopls來管理Go代碼,讓VSCode編寫Go代碼更加的順滑。
gopls是VSCode推出的調用微軟官方的Language Server Protocol(LSP)[2]的擴展,包含了很多Go工具的功能[3],例如:godef(代碼跳轉),goimports(代碼格式化),gocode(代碼補全)等。
安裝Go語言
一、安裝主要有以下兩種方式
1. Homebrew[4]安裝(便於升級與卸載,推薦)
執行以下命令即可
brew install go
2. 官方下載pkg安裝包(被牆了,可能需要一些技能。。。)
下載完成后,點擊安裝,無腦下一步即可,中間只需要輸入一次系統密碼。
二、安裝完成后驗證是否安裝成功
三、兩種方式的區別
1. Homebrew安裝
1) 通過以下命令升級和卸載
brew upgrade go
brew uninstall go
2) GOROOT路徑
/usr/local/Cellar/go/<go 版本號>/libexec
2. 官方下載pkg安裝包
1) 卸載時需要刪除以下內容,升級則需要卸載后重新安裝。
sudo rm -rf /usr/local/go
sudo rm -rf /etc/paths.d/go
2) GOROOT路徑
/usr/local/go
Go環境變量配置[5]
Go的環境變量可以通過 go env 命令查看。在Go 1.13之后,無需再通過設置系統環境變量的方式來修改,可以通過 go env -w 命令來設置Go的環境變量。
需要設置的環境變量如下
# 用於存放依賴包及編譯文件,比較隨意,只要不和GOROOT重名即可,官方禁止這一行為。 go env -w GOPATH=/Users/<系統用戶名>/Library/go # 設置代理后,在未FQ的情況下,打開VSCode后gopls工具的加載會很快。 go env -w GOPROXY=https://goproxy.cn,direct
VSCode開發環境配置
一、初始化Go項目
1. 在 ${GOPATH}/src 之外的任意位置創建一個Go項目。
2. 在項目內執行 go mod init 初始化當前Go項目。
3. Go項目內會出現一個 go.mod 文件。
二、VSCode插件配置
1. 插件列表
1) Go: VSCode官方提供的插件,可以使用Go的大部分工具。
2) Code Runner[6]: VSCode運行代碼神器,支持運行40余種語言,可自行配置運行命令。
3) EditorConfig for VS Code[7]: 可以設置VSCode的代碼編輯配置。
2. 插件配置
1) 在VSCode配置文件中添加 "go.useLanguageServer": true ,保存后,右下角會提示重啟VSCode
2) 重啟后右下角會提示安裝gopls,點擊安裝即可。
3. 其他插件配置分享

"code-runner.runInTerminal": true, "code-runner.ignoreSelection": true, "code-runner.saveAllFilesBeforeRun": true, "code-runner.executorMap": { "python": "python3 -u", "go": "cd $dir && go run ./", "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "cpp": "cd $dir && g++ -std=c++11 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", },

root = true [*] charset = utf-8 indent_style = space indent_size = 4 end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true
總結
經過以上的配置,VSCode的Go開發環境已經配置完成,可以在VSCode中愉快的編寫並運行Go代碼了。需要注意的是,由於使用的是gopls,每次打開Go項目,會有10s左右的加載時間,加載完成之后代碼跳轉,自動補全等功能才可以正常使用。
參考
[1]. 干貨滿滿的 Go Modules 和 goproxy.cn
[2]. Langserver.org
[3]. Go tools that the Go extension depends on
[4]. Homebrew常規使用教程
[5]. 關於GOROOT、GOPATH、GOBIN、project目錄
[6]. [VSCode插件推薦] Code Runner: 代碼一鍵運行,支持超過40種語言
其他