Go語言系列:(1)在VsCode中配置Go的開發環境

1、爲何選VSCodelinux

這個系列的初宗是帶領公司的PHPer轉Go,在正式寫這篇博文前,我們先說說Go有哪些主流的IDEgit

一、GoLand(收費)github

JetBrains出品必屬精品,除了貴沒有其它缺點,若是你用這款IDE,我只想說出門右轉,不送!~~~~golang

二、LiteIDE(免費)
LiteIDE是一個簡單的開源IDE。值得注意的是,它是Go語言2012年正式版發佈的首個IDE,由Qt開發。因爲它是爲Golang直接設計的,LiteIDE爲開發人員提供了許多有用的功能,包括可配置的構建命令,高級代碼編輯器和普遍的Golang支持。其餘功能包括代碼管理,gdb和Delve調試器,自動完成和使用WordApi的主題,基於MIME類型的系統等等。實際上,新手我通常推薦他用LiteIDE,雖然免費但功可以了,最重要是一鍵安裝,不須要爲了配置而分神。但這個Logo啊,我實在愛不起來,顏值即正義。編程

三、Eclipse(免費)bootstrap

GoClipse是Eclipse的插件。使用GoClipse插件,開發人員能夠利用流行的Eclipse IDE進行編程。Eclipse IDE和GoClipse插件都是免費和開源的。GoClipse編輯器爲開發人員提供了普遍的功能,包括源代碼編輯器,項目嚮導和構建器,以幫助報告編輯器內構建的錯誤,以及功能齊全的GDB調試器支持。大名鼎鼎的Eclipse,從大學時期寫JAVA時,我就愛不起來啊!23333vim

四、Atom(免費)windows

開發人員能夠利用這個Atom IDE改進的語言集成與更智能的編輯器。開源的go-plus軟件包使開發人員更容易在Go中進行編程。Atom和go-plus軟件包爲Golang提供工具,構建流程,linters,vet和coverage工具的支持。其餘功能包括自動完成,格式化,測試和文檔。使用deve的go-debug包能夠添加其餘調試功能。Atom+go-plus功可以用,性能還能夠,值得出手。安全

五、Vim(免費)bash

Vim有許多插件能夠幫助開發人員更輕鬆地編輯他們的Go代碼。vim-go插件自動安裝全部必要的東西,爲Vim中的Go開發人員提供更平滑的集成。Vim-go具備許多有用的功能,包括編譯器,改進的語法高亮和摺疊,完成支持以及一系列具備集成支持的調試程序。還有一些使用的高級源分析工具,包括:GoImplements,:GoCallees和:GoReferrers。其餘vim插件包括用於反饋編譯器錯誤的Syntastic插件,用於Gotags的tagbar插件,用於語法檢查的vim編譯器插件,甚至用於生成.virmrc配置的vim-bootstrap。說實話,功能強大,該有的都有,性能好得變態,可是快捷鍵太多了,我是實在記不住,界面嘛用過DOS嗎,沒錯就是白黑加紅的那種!

六、VSCode(免費)

它是微軟開發的廣受歡迎的開源IDE,有一個開箱即用的Go擴展可供VS Code Code使用。vscode-go插件爲開發人員提供了更多功能,包括與許多Go工具集成。VS Code經過IntelliSense,內置Git集成,直接從編輯器調試代碼等功能提供智能完成功能。VS Code具備高度可擴展性,並經過其許多擴展提供了許多自定義選項。它還提供了幾十種語言的支持,這使得它成爲了受開發者歡迎的工具。性能吧通常,佔用內存有點多,界面完美。並且以前的PHP開發也是用的這個。

 

2、什麼是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語言是一門混合型的語言。

 

3、安裝Go

一、下載

打開官網https://golang.google.cn/ 點擊 Downloads Go進行,進入下載頁後,找到下載的地方以下圖:

 

下面的安裝,我會以win10 64 bit及 CentOS7 64 bit作例子,故我分別下載第一項和第三項

 

二、Windows下安裝

雙擊你下載的安裝包(go1.13.4.windows-amd64.msi),一直點擊「Next」便可,注意有一步要求選擇安裝路徑,爲了後面教程好說明請不要更改。

 

 

而後點「Install」安裝

 

這個過程請等待

 

 點擊「Finish」完成安裝

 

怎麼來驗證咱們的安裝是成功的呢?按windows鍵+R,輸入:cmd回車

 

在出現的命令行窗口輸入:go version回車,這時會顯示你當前安裝的go版本,說明我們已經安裝成功了

 

三、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

 成功輸出以下圖

 

 

4、安裝VSCode

一、下載

打開官網https://code.visualstudio.com/Download,進入下載頁後,找到下載的地方以下圖:

 win10 64 bit點擊第一處紅箭頭指向處下載,CentOS 64 bit點第二處箭頭指向處下載

 

二、windows下安裝

雙擊你下載的安裝程序,而後按下圖順序一路點擊

 

 

 

 

 

 

 

 

 

 

 

三、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了

 

 

 

5、安裝VSCode中文包

若是你和筆者同樣英文很low,你能夠選擇安裝中文語言包

先能夠點左側第五個圖標,或按快捷鍵Ctrl+Shift+X 打開Extensions,在搜索框裏輸入:language,中文(簡體)的包,而後點「Install」安裝,以下圖

 

從新打開VSCode,這時已是中文的啦

 

6、安裝go插件

打開Extensions,輸入go,安裝做者Microsoft的這個

 

7、安裝Git工具

一、打開https://git-scm.com/downloads ,選擇你係統的安裝文件安裝

 

 

二、下載完成後,若是你的是widows系統,雙擊安裝包一路Next便可,若是你是linux,默認就安裝有Git,若是你的沒有,請自行百度

 

8、關於牆的的解決辦法

一、設置Goproxy爲 https://goproxy.cn

打開命令行執行

go env -w GOPROXY=https://goproxy.cn,direct

 

二、使用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

 

三、經過鏡像源得到tools

不少go的軟件在編譯時都要使用tools裏面的內容,使用下面方法獲取(以windows爲例):

cd \
cd C:\Users\Administrator\go\src\golang.org\x
git clone https://github.com/golang/tools.git

 

 

四、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目錄中;

 

9、安裝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系統來一個一個的舉例:

一、進入命令窗口,輸入:

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

 安裝失敗,沒法安裝"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

 

 

安裝成功

 

四、進入命令窗口,輸入:

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

 

 安裝成功

 

10、測試安裝

一、在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)等常見功能了

相關文章
相關標籤/搜索