一、為什么選VSCode
這個系列的初宗是帶領公司的PHPer轉Go,在正式寫這篇博文前,咱們先說說Go有哪些主流的IDE
1、GoLand(收費)
JetBrains出品必屬精品,除了貴沒有其它缺點,如果你用這款IDE,我只想說出門右轉,不送!~~~~
2、LiteIDE(免費)
LiteIDE是一個簡單的開源IDE。值得注意的是,它是Go語言2012年正式版發布的首個IDE,由Qt開發。由於它是為Golang直接設計的,LiteIDE為開發人員提供了許多有用的功能,包括可配置的構建命令,高級代碼編輯器和廣泛的Golang支持。其他功能包括代碼管理,gdb和Delve調試器,自動完成和使用WordApi的主題,基於MIME類型的系統等等。實際上,新手我一般推薦他用LiteIDE,雖然免費但功能夠了,最重要是一鍵安裝,不需要為了配置而分神。但這個Logo啊,我實在愛不起來,顏值即正義。
3、Eclipse(免費)
GoClipse是Eclipse的插件。使用GoClipse插件,開發人員可以利用流行的Eclipse IDE進行編程。Eclipse IDE和GoClipse插件都是免費和開源的。GoClipse編輯器為開發人員提供了廣泛的功能,包括源代碼編輯器,項目向導和構建器,以幫助報告編輯器內構建的錯誤,以及功能齊全的GDB調試器支持。大名鼎鼎的Eclipse,從大學時期寫JAVA時,我就愛不起來啊!23333
4、Atom(免費)
開發人員可以利用這個Atom IDE改進的語言集成與更智能的編輯器。開源的go-plus軟件包使開發人員更容易在Go中進行編程。Atom和go-plus軟件包為Golang提供工具,構建流程,linters,vet和coverage工具的支持。其他功能包括自動完成,格式化,測試和文檔。使用deve的go-debug包可以添加其他調試功能。Atom+go-plus功能夠用,性能還可以,值得出手。
5、Vim(免費)
Vim有許多插件可以幫助開發人員更輕松地編輯他們的Go代碼。vim-go插件自動安裝所有必要的東西,為Vim中的Go開發人員提供更平滑的集成。Vim-go具有許多有用的功能,包括編譯器,改進的語法高亮和折疊,完成支持以及一系列具有集成支持的調試程序。還有一些使用的高級源分析工具,包括:GoImplements,:GoCallees和:GoReferrers。其他vim插件包括用於反饋編譯器錯誤的Syntastic插件,用於Gotags的tagbar插件,用於語法檢查的vim編譯器插件,甚至用於生成.virmrc配置的vim-bootstrap。說實話,功能強大,該有的都有,性能好得變態,但是快捷鍵太多了,我是實在記不住,界面嘛用過DOS嗎,沒錯就是白黑加紅的那種!
6、VSCode(免費)
它是微軟開發的廣受歡迎的開源IDE,有一個開箱即用的Go擴展可供VS Code Code使用。vscode-go插件為開發人員提供了更多功能,包括與許多Go工具集成。VS Code通過IntelliSense,內置Git集成,直接從編輯器調試代碼等功能提供智能完成功能。VS Code具有高度可擴展性,並通過其許多擴展提供了許多自定義選項。它還提供了幾十種語言的支持,這使得它成為了受開發者歡迎的工具。性能吧一般,占用內存有點多,界面完美。而且之前的PHP開發也是用的這個。
二、什么是Go
Go語言(或 Golang)的官網首頁有一段話:Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.誠如這句描述:
Go語言具有“部署簡單、並發性好、語言設計良好、執行性能好”等優勢。它起源於 2007 年,並在 2009 年正式對外發布。
Go語言的主要目標是“兼具 Python 等動態語言的開發速度和 C/C++ 等編譯型語言的性能與安全性”。
Go語言它不但能讓你訪問底層操作系統,還提供了強大的原生網絡編程和並發編程支持。很多知名的開源項目用Go實現,例如:Docker、Go-Ethereum、Thrraform 和 Kubernetes。
Go語言是“互聯網時代的C語言”。Go 從C語言繼承了相似的表達式語法、控制流結構、基礎數據類型、調用參數傳值、指針等很多思想,還有C語言一直所看中的編譯后機器碼的運行效率以及和現有操作系統的無縫適配。
Go語言沒有類和繼承的概念,它和 Java 或 C# 看起來並不相同。但是它通過接口(interface)的概念來實現多態性。
Go語言有一個清晰易懂的輕量級類型系統,在類型之間也沒有層級之說。因此可以說Go語言是一門混合型的語言。
三、安裝Go
1、下載
打開官網https://golang.google.cn/ 點擊 Downloads Go進行,進入下載頁后,找到下載的地方如下圖:
下面的安裝,我會以win10 64 bit及 CentOS7 64 bit做例子,故我分別下載第一項和第三項
2、Windows下安裝
雙擊你下載的安裝包(go1.13.4.windows-amd64.msi),一直點擊“Next”即可,注意有一步要求選擇安裝路徑,為了后面教程好說明請不要更改。
然后點“Install”安裝
這個過程請等待
點擊“Finish”完成安裝
怎么來驗證我們的安裝是成功的呢?按windows鍵+R,輸入:cmd回車
在出現的命令行窗口輸入:go version回車,這時會顯示你當前安裝的go版本,說明咱們已經安裝成功了
3、CentOS下安裝
把剛剛下載的文件(你也可以使用$wget命令下載)移到指定的目錄中,我的使用的是/home/roy/go ,打開終端,進入該目錄,如圖
安裝Go, 執行命令
$tar -xvf go1.13.4.linux-amd64.tar.gz
設置環境變量,執行命令
$vim /etc/profile
在文件最后追加(按i鍵,進入插入模式)
export GOROOT=/home/roy/go/go export GOPATH=/home/roy/go/gopath export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
保存,按ESC,再輸入:wq回車
測試環境是否成功,重啟電腦,在終端上輸入:
go version
出現如下圖,表示成功
來寫個簡單的代碼試試,創建目錄並進入該目錄
$cd /home/roy/go/gopath $mkdir helloworld
$cd helloworld
創建文件main.go
$vim main.go
輸入
package main import "fmt" func main() { fmt.Println("Hello, World!") }
保存,按ESC,再輸入:wq回車
執行
$go run ./main.go
成功輸出如下圖
四、安裝VSCode
1、下載
打開官網https://code.visualstudio.com/Download,進入下載頁后,找到下載的地方如下圖:
win10 64 bit點擊第一處紅箭頭指向處下載,CentOS 64 bit點第二處箭頭指向處下載
2、windows下安裝
雙擊你下載的安裝程序,然后按下圖順序一路點擊
3、CentOS下安裝
在官網上下載VSCode的.rpm,得到文件 code-1.40.2-1574694258.el7.x86_64.rpm,把它移動到 /home/roy/VSCode目錄下,在終端下進入這個目錄
$cd /home/roy/VSCode
執行安裝
rpm -ivh code-1.40.2-1574694258.el7.x86_64.rpm
此時報錯,如圖
執行下面命令:
yum install libXss* -y
成功后,再執行安裝
rpm -ivh code-1.40.2-1574694258.el7.x86_64.rpm
安裝成功,這時我們可以在應用程序的菜單中找到VSCode了
五、安裝VSCode中文包
如果你和筆者一樣英文很low,你可以選擇安裝中文語言包
先可以點左側第五個圖標,或按快捷鍵Ctrl+Shift+X 打開Extensions,在搜索框里輸入:language,中文(簡體)的包,然后點“Install”安裝,如下圖
重新打開VSCode,這時已經是中文的啦
六、安裝go插件
打開Extensions,輸入go,安裝作者Microsoft的這個
七、安裝Git工具
1、打開https://git-scm.com/downloads ,選擇你系統的安裝文件安裝
2、下載完成后,如果你的是widows系統,雙擊安裝包一路Next即可,如果你是linux,默認就安裝有Git,如果你的沒有,請自行百度
八、關於牆的的解決辦法
1、設置Goproxy為 https://goproxy.cn
打開命令行執行
go env -w GOPROXY=https://goproxy.cn,direct
2、使用github鏡像源
golang 在 github 上建立了一個鏡像庫,如 https://github.com/golang/net 即是 https://golang.org/x/net 的鏡像庫
獲取 golang.org/x/net 包,其實只需要以下步驟:
git clone https://github.com/golang/net.git
然后把git下來的文件夾拷貝到 $GOPATH/src/golang.org/x
下,以windows為例,即 C:\Users\Administrator\go\src\golang.org/x
下,當然了你也可以先cd到該目錄下后,再執行git
3、通過鏡像源獲得tools
很多go的軟件在編譯時都要使用tools里面的內容,使用下面方法獲取(以windows為例):
cd \ cd C:\Users\Administrator\go\src\golang.org\x git clone https://github.com/golang/tools.git
4、gopm 代替go 下載第三方依賴包 (本教程的配置不使用該方法)
可以采用gopm從golang.org一些鏡像網站上下載
安裝gopm
go get -u github.com/gpmgo/gopm
用gopm get -g代替 go getgopm get
gopm get -g golang.org/x/net
不采用-g參數,會把依賴包下載.vendor目錄下面;采用-g 參數,可以把依賴包下載到GOPATH目錄中;
九、安裝vscode-go
對於Visual Studio Code開發工具,有一款優秀的GoLang插件,它的主頁為:https://github.com/microsoft/vscode-go
這款插件的特性包括:
- Colorization 代碼着彩色
- Completion Lists 代碼自動完成(使用gocode)
- Snippets 代碼片段
- Quick Info 快速提示信息(使用godef)
- Goto Definition 跳轉到定義(使用godef)
- Find References 搜索參考引用(使用go-find-references)
- File outline 文件大綱(使用go-outline)
- Workspace symbol search 工作區符號搜索(使用 go-symbols)
- Rename 重命名(使用gorename)
- Build-on-save 保存構建(使用go build和go test)
- Format 代碼格式化(使用goreturns或goimports或gofmt)
- Add Imports 添加引用(使用 gopkgs)
- Debugging 調試代碼(使用delve)
集成安裝命令,拷貝到cmd窗口就可完成安裝:
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-find-references 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
我們以windows系統來一個一個的舉例:
1、進入命令窗口,輸入:
go get -u -v github.com/nsf/gocode
安裝成功
2、進入命令窗口,輸入:
go get -u -v github.com/rogpeppe/godef
安裝成功
3、進入命令窗口,輸入:
go get -u -v github.com/golang/lint/golint
安裝失敗,無法安裝"golang.org/x/lint/golint",實事上由於一些眾所周知的原因,在中國大陸安裝go的包時會經常出錯,我們使用第八條中的方法,先安裝“golang.org/x/lint/golint”,輸入:
git clone https://github.com/golang/lint.git
成功后,再執行
go get -u -v golang.org/x/lint/golint
成功后,重新執行
go get -u -v github.com/golang/lint/golint
安裝成功
4、進入命令窗口,輸入:
go get -u -v github.com/lukehoban/go-find-references
安裝成功
5、進入命令窗口,輸入:
go get -u -v github.com/lukehoban/go-outline
安裝成功
6、進入命令窗口,輸入:
go get -u -v sourcegraph.com/sqs/goreturns
安裝成功
7、進入命令窗口,輸入:
go get -u -v golang.org/x/tools/cmd/gorename
安裝成功
8、進入命令窗口,輸入:
go get -u -v github.com/tpng/gopkgs
安裝成功
9、進入命令窗口,輸入:
go get -u -v github.com/newhook/go-symbols
安裝成功
十、測試安裝
1、在GoPath中新建一個文件夾GoHello,打開VSCode打開這個文件夾,新建一個文件main.go,在文件中輸入以下代碼
package main import ( "fmt" ) func main() { fmt.Println("hello world") }
如果右下角有提示你有些插件需要更新,你可以不面要理會,或直接點更新,如圖提示:Your version of go-outline appears to be out of date. Please update for an improved experience.
這里我直接點Update更新
更新成功
同理,如果有提示你有package需要安裝,你直接點“install”安裝即可。注:安裝或更新過package最好重啟下VSCode
到此環境已經配制好,這個環境有代碼補全、智能感知、自動格式化代碼(ctrl+s)、代碼追蹤(F12)、斷點(F5)、運行(Ctrl+F5)等常見功能了