前言
其實環境搭建沒什么難的,但是遇到一些問題,主要是有些網站資源訪問不了(如:golang.org),
導致一些包無法安裝,最終會導致環境搭建失敗,跟據這個教程幾步,我們將可以快速的構建golang的開發環境。
開發環境:

一、安裝
這里我用需要安裝一些工具:
2.Golang下載
這里我使用的是Go1.6.
3.git下載
這一步跟建環境沒什么關系,
但是之后要引用一些包需要它.

安裝方法:打開vscode 按F1 然后選擇安裝擴展 選擇go 下載后 重啟

vscode-go 插件需要一些工具,這些功具默認需要這樣安裝: go get -u -v github.com/nsf/gocode go get -u -v github.com/rogpeppe/godef go get -u -v github.com/golang/lint/golint go get -u -v github.com/lukehoban/go-outline go get -u -v sourcegraph.com/sqs/goreturns go get -u -v golang.org/x/tools/cmd/gorename go get -u -v github.com/tpng/gopkgs go get -u -v github.com/newhook/go-symbols go get -u -v golang.org/x/tools/cmd/guru (以及dlv調試運行工具) 這些內容最終目的是要在gopath中bin文件夾中生成一些exe文件。 但是,這里安裝時遇到了一些問題,有一些會安裝失敗,報錯信息主要意思是說無法鏈接啊,無法找到啊之類的。 這里我省略這些步驟。直接下載我已經生成的exe包,放在gopath的bin文件夾中就行了。如下圖:

二、配置
1.GOPATH:這個是你的工作目錄,請在系統新加一個GOPATH指定你的工作目錄,並且在工作目錄中新建
bin,pkg,src三個文件夾。
2.Git:將git安裝目錄下的bin目錄加入Path環境變量。
3.用vscode打開src文件夾添加兩個文件如下:

{ "files.autoSave": "onFocusChange", "go.buildOnSave": true, "go.lintOnSave": true, "go.vetOnSave": true, "go.buildTags": "", "go.buildFlags": [], "go.lintFlags": [], "go.vetFlags": [], "go.coverOnSave": false, "go.useCodeSnippetsOnFunctionSuggest": false, "go.formatOnSave": true, "go.formatTool": "goreturns", "go.goroot": "C:\\Go", "go.gopath": "H:\\Projects\\GitHub\\Go", "go.gocodeAutoBuild": true }

{ "version": "0.2.0", "configurations": [ { "name": "Launch", "type": "go", "request": "launch", "mode": "debug", "remotePath": "", "port": 2345, "host": "127.0.0.1", "program": "${workspaceRoot}\\helloworld", "env": {}, "args": [] } ] }
三、演示
運行

調試

更改語言設置
VSCode在初次啟動時會判斷當前系統語言,並以相應的語言作為默認窗口顯示語言。比如:我的是中文OS X系統,那么默認VSCode的窗口文字都是中文。如果我要將其改為英文,應該如何操作呢?
F1登場!這里的F1可不是賽車比賽,而是快捷鍵F1,估計也是整個VSCode最常用的快捷鍵之一了。敲擊F1后,VSCode會顯示其“Command Palette”輸入框,這里面包含了當前VSCode可以執行的所有操作命令,支持Search。我們輸入”language”,在搜索結果中選擇“Configure Language”,VSCode打開一個新的編輯窗口,加載~/Library/Application Support/Code/User/locale.json文件:
{
// 定義 VSCode 的顯示語言。
// 請參閱 https://go.microsoft.com/fwlink/?LinkId=761051,了解支持的語言列表。
// 要更改值需要重啟 VSCode。
"locale": "zh-cn"
}
當前語言為中文,如果我們要將其改為英文,則修改該文件中的”locale”項:
{
// 定義 VSCode 的顯示語言。
// 請參閱 https://go.microsoft.com/fwlink/?LinkId=761051,了解支持的語言列表。
// 要更改值需要重啟 VSCode。
"locale": "en-US"
}
保存,重啟VSCode。再次啟動的VSCode將會以英文界面示人了。
3、User Settings和Workspace Settings
UserSettings是一種“全局”設置,而Workspace Settings則顧名思義,是一種針對一個特定目錄或project的設置。
UserSettings設置后的數據保存在~/Library/Application Support/Code下(以mac為例),而Workspace Setting設置后的數據則保存在某個項目特定目錄下的.vscode目錄下。
在菜單欄,選擇【Preferences -> User Settings】可以打開~/Library/Application Support/Code/User/settings.json文件。默認情況下,該文件為空。VSCode采用默認設置。如果你要個性化設置,那么可將對應的配置項copy一份到settings.json中,並賦予其新值,保存即可。新值將覆蓋默認值。以字體大小為例,我們將默認的editor.fontSize 12改為10:
// Place your settings in this file to overwrite the default settings
{
"editor.fontSize": 10,
}
保存后,可以看到窗口中所有文字的Size都變小了。
在菜單欄,選擇【Preferences -> Workspace Settings】可打開當前工作目錄下的.vscode的settings.json文件,其工作原理和配置方法與User Settings一樣,只是生效范圍僅限於該工作區范疇。
4、Color Theme
VSCode內置了主流的配色方案,比如:monokai、solarized dark/light等。F1,輸入”color”搜索,選擇:“Perefences: Color Theme”(在MAC上也可以用cmd+k, cmd+t打開),在下拉列表中選擇你喜歡的配色Theme即可,即可生效。
四、vscode-go的使用
前面說過,和vim-go一樣,vscode-go插件實現了Go編碼中需要的各種功能:自動format、自動增刪import、build on save、lint on save、定義跳轉、原型信息快速提示、自動補全、code snippets等。另外它通過帶顏色的波浪線提示代碼問題(雖然有時候反應有點慢),包括語法問題、不符合idiomatic go規則的問題(比如appId這個命名,它會建議你改為appID)等。
code snippets非常好用,內置的code snippets在~/.vscode/extensions/lukehoban.Go-0.6.51/snippets/go.json中可以找到,類似這樣的定義:
//~/.vscode/extensions/lukehoban.Go-0.6.51/snippets/go.json
{
".source.go": {
"single import": {
"prefix": "im",
"body": "import \"${1:package}\""
},
"multiple imports": {
"prefix": "ims",
"body": "import (\n\t\"${1:package}\"\n)"
},
"single constant": {
"prefix": "co",
"body": "const ${1:name} = ${2:value}"
},
"multiple constants": {
"prefix": "cos",
"body": "const (\n\t${1:name} = ${2:value}\n)"
},
"type interface declaration": {
"prefix": "tyi",
"body": "type ${1:name} interface {\n\t$0\n}"
},
"type struct declaration": {
"prefix": "tys",
"body": "type ${1:name} struct {\n\t$0\n}"
},
"package main and main function": {
"prefix": "pkgm",
"body": "package main\n\nfunc main() {\n\t$0\n}"
},
... ...
敲入”prefix”的值,比如”ims”,輸入tab,vscode-go將為你展開為:
import (
"package"
)
在使用vscode時遇到過一次代碼自動補全“失靈”的問題。vscode-go只會提示:”PANIC,PANIC,PANIC”。經查,這個是gocode daemon的問題,我的解決方法是:
gocode close //關閉gocode daemon
gocode -s & //重啟之。
五、小結
在諸多輕量級編輯器中,我還是比較看好vscode的,畢竟其背后有着Microsoft積淀多年的IDE產品開發經驗。並且和Microsoft以往產品最大的不同就是其是開源項目。
關於Vscode的使用和奇技淫巧可以參見其官方的這篇文檔“VS Code Tips and Tricks”。
關於Vscode的各種周邊工具和資料列表,請參考Awesome-vscode項目。
快捷鍵往往是開發人員的最愛,VSCode官方制作了三個平台的VSCode的快捷鍵worksheet:
https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf
https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf
https://code.visualstudio.com/shortcuts/keyboard-shortcuts-linux.pdf
VSCode還在快速發展,離完善還有不小提升空間。比如:在使用過程中也發現了VSCode 窗口無響應或代碼編輯錯亂之情況。不過作為Go編碼的一個輔助編輯器,VSCode還是完全勝任和超出預期的。
