使用visual studio code開發Go程式

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

在visual studio code 1.0發布之前我也曾多次嘗試使用visual studio code開發Go程式,但是都放棄了,一是Go的外掛程式還沒發布或者不完善,而是vscode還不是那麼方便,所以我一直使用atom + goplus + godebug編寫Go的代碼,而且用起來也非常的順手方便。 現在vscode 1.0發布了,而且支援10種本地化語言,我嘗試使用它編寫Go程式,功能和效能都不錯,所以目前atom和vscode都是我的菜。

本文簡單介紹一下使用vscode開發Go的一些配置,預覽vscode + Go 的功能。

調整本地語言

vscode安裝上後會根據你的作業系統的本地化設定來配置你的visual studio code採用的語言,所以很可能你安裝上之後顯示為簡體中文。目前vscode 1.0支援下面10種語言:

  • English (US) en-US
  • 簡體中文 zh-CN
  • 繁體中文 zh-TW
  • 法語 fr
  • 德語 de
  • 意大利語 it
  • 日語 ja
  • 韓語 ko
  • 俄語 ru
  • 西班牙語 es

我還是習慣於英語環境,所以調整本地化語言為英語。如果想調整語言,使用 "ctrl + shift + P"開啟命令選擇區,輸入 "Conf" 就會顯示出 “Configure Language”命令,點擊這個命令就會建立或者開啟locale.json檔案,在這個檔案中你就可以設定你的locale 語言了:

123
{"locale":"en-US"}

我把它改成英文顯示,重啟vscode就顯示英文了。

安裝Go外掛程式

要開發Go程式,你需要安裝Go的外掛程式。 "ctrl + shift + P"開啟命名面板,然後輸入 "ext install Go"就會安裝Go外掛程式了,安裝完後提示你重啟vscode,就可以編寫Go程式了。

它支援以下功能:

  • 彩色高亮Colorization
  • 自動完成列表 (using gocode)
  • 方法和類的簽名協助資訊 (using godoc)
  • 程式碼片段
  • 快速資訊 (using godef)
  • 尋找定義 (using godef)
  • 尋找引用 (using guru)
  • 檔案大綱 (using go-outline)
  • 工作區符號搜尋 (using go-symbols)
  • 重新命名 (using gorename)
  • 儲存時編譯 (using go build and go test)
  • 格式化 (using goreturns or goimports or gofmt)
  • 增加匯入 (using gopkgs)
  • 調試 [部分實現] (using delve)

它的調試功能值得稱讚,Go總算也有一個方便的調試功能呢,加上斷點後可以斷點所在的堆棧資訊,變數以及監控自訂的運算式。(atom + godebug也可以實現這個功能,它也通過delve進行調試)

在vscode左邊工具列的第四個表徵圖就可以開啟調試視窗,點擊某行可以方便的在代碼中增加斷點。

當然,在第一次編寫Go代碼的時候,可能需要安裝所需的工具,如guru、go-symbols、goreturns等。如果設定好GOPATH環境變數,啟動vscode,開啟一個go代碼檔案,在右下角你會看到 "Analysis Tools Missing"的提示,點擊它就會自動安裝這些所需的工具。你也可以手工安裝它們:

123456789
go get -u -v github.com/nsf/gocodego get -u -v github.com/rogpeppe/godefgo get -u -v github.com/golang/lint/golintgo get -u -v github.com/lukehoban/go-outlinego get -u -v sourcegraph.com/sqs/goreturnsgo get -u -v golang.org/x/tools/cmd/gorenamego get -u -v github.com/tpng/gopkgsgo get -u -v github.com/newhook/go-symbolsgo get -u -v golang.org/x/tools/cmd/guru

Go外掛程式設定

vscode的Go外掛程式有一些可以定製化的配置,你可以開啟user preferences 或者 workspace settings來配置。如果想對所有的Go項目有效,就修改user preferences。

點擊菜單 "File -> Preferences -> User Settting"開啟視窗,左邊的視窗是 vscode預設配置,右邊的視窗可以添加我們自己的設定。對於Go外掛程式,可以添加如下的設定:

1234567891011121314
{    "go.buildOnSave": true,    "go.lintOnSave": true,    "go.vetOnSave": true,    "go.buildFlags": [],    "go.lintFlags": [],    "go.vetFlags": [],    "go.coverOnSave": false,    "go.useCodeSnippetsOnFunctionSuggest": false,    "go.formatOnSave": true,    "go.formatTool": "goreturns",    "go.goroot": "C:/Go",    "go.gopath": "C:/gopath"}

它定製了Go外掛程式的一些行為和變數。比如你可以改格式化工具為"gofmt",如 "go.formatTool": "gofmt"。

在寫Go代碼的時候,很多工具只有在編寫的檔案儲存的時候才會執行,比如格式化,vet,lint、cover、test等,所以定時的儲存檔案可以觸發這些動作,因此你可以在這個設定檔中加上下面的配置:

1
"files.autoSave": "afterDelay"

它可以定時的儲存檔案。

快速鍵

你可以通過菜單 "File -> Preferences -> Keyboard Shortcuts"查看和定義快速鍵。左邊的視窗顯示預設的快速鍵設定,但是不是很直觀,建議看這個連結,它分門別類的介紹了每個快速鍵的功能。

一般涉及到快速鍵,我都會對其中的一個快速鍵特別的關注,就是 "ctrl + space",這個鍵一般用來設定觸發提示的功能,但是和IME切換的快速鍵衝突,所以我會重新定義它。在剛才開啟的右邊視窗中增加定義:

12345
{    "key": "ctrl+j",    "command": "editor.action.triggerSuggest",    "when": "editorTextFocus"}

同時我還增加了一個自己習慣的快速鍵,就是格式化代碼的快捷點,預設設定為 "shift+alt+f",我新增加了一個快速鍵:

12345
{       "key": "ctrl+alt+f",       "command": "editor.action.format",       "when": "editorTextFocus"   }

以及執行測試的快速鍵

123456789101112
{    "key": "ctrl+alt+t",    "command": "go.test.cursor",    "when": "editorTextFocus"},{    "key": "ctrl+alt+p",    "command": "go.test.package",    "when": "editorTextFocus"}

右邊視窗的的右下角有對話方塊可以協助你增加快速鍵,當然你也可以想我這樣一樣手工添加。

其它功能

Go外掛程式和vscode工具配合的很好,比如調用格式化代碼的快速鍵就可以進行格式化,不必在儲存的時候就可以執行。你也可以在命令選擇區中輸入 "!"查看警告和錯誤資訊。

類似Sublime text,命令選擇區非常的有用, "ctrl + p"開啟它後輸入 "?"可以查看它的不同的功能。

vscode的狀態列也非常的有用,外掛程式資訊、git資訊,文檔資訊都會在這裡顯示。

你可以改變代碼高亮的風格。"ctrl + shift + P"開啟命令選擇區,輸入 "theme"會顯示 "Preferences:Color Theme",點擊它會顯示可用的theme。 你還可以在visual studio marketplace上你可以找到更多的theme,比如我使用的[Seti Modified],和atom的保持一致。

相比atom,當然vscode還有不足的地方,比如開啟多個檔案,它們不會以tab的顯示多視窗,你還需要"ctrl + tab"再選擇其它的檔案。沒有安裝Python但是還總提示Python外掛程式需要升級等。但是也有比atom功能強大的地方,比如 "ctrl" +滑鼠點擊就可以查看方法的定義,效能可能比atom要好,儘管在我的機器上還沒看出太大的效能區別。

本文只是粗略的展示了vscode和Go外掛程式的功能,相信更強大的功能還有待在實踐中發掘和學習。

另外,建議閱讀github上的這篇文章VS Code Tips and Tricks

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.