2021-05-12 14:32:11
Golang 環境設定建議
開發環境的必要特徵
- 專案管理
- 快速檔案跳轉
- 自動語法檢查
- 自動補全
- 查詢定義
- 啟動速度快
- 如果自己有需求的話外掛可以隨便寫
(project,lint,hint,autocomplete)
要實現上面幾點我們來一步一步的設定。
我的大環境
- OSX
- GO 1.4
- HomeBrew
go 環境安裝
這一部分是最重要的,如果沒有它,每次build的時候出現 too many errors 心裡真的是非常難過的。
- 環境設定:(golint,goOracle,mercurial)
- 安裝mercurial: brew install mercurial
這個東西是用來做版本管理的,也是下載程式碼的工具類似git,貌似google的專案用的挺多的。
- 安裝golint:
- $ go get github.com/golang/lint
- $ go install github.com/golang/lint
- 安裝mercurial: brew install mercurial
- 安裝gooracle
- go get code.google.com/p/go.tools/cmd/oracle
- 安裝goimport
- go get golang.org/x/tools/cmd/goimports
- 安裝gocode
- go get-u github.com/nsf/gocode
- 安裝 godef
- go get-v code.google.com/p/rog-go/exp/cmd/godef
- go install -v code.google.com/p/rog-go/exp/cmd/godef
- 安裝環境的時候經常會出現下載不下來的問題,大概是我網路不好吧。連線google經常出現問題。
解決方案:
golang中國的下載頻道中有一個第三方包的下載工具,只要輸入地址之後人家會給你提供下載tar包的。
放到gopath中就ok了。此步驟只能替代go get的步驟,最後還是需要go install
-
go install 之後會在 $GOPATH/bin/ 中出現各種工具檔案
- gocode 提供程式碼補全
- godef 程式碼跳轉
- gofmt 自動程式碼整理
- golint 程式碼語法檢查
- goimports 自動整理imports
- oracle 程式碼callgraph查詢(plugin中還在todolist中,但是不設定一直報錯。實在煩。)
最後不要忘記複製上面的命令到 $GOROOT/bin/下面
-
最後的設定結果(安裝完之後 Package->Go Plus->Display Go Information)
- CoverTool:/usr/local/go/pkg/tool/darwin_amd64/cover
- VetTool:/usr/local/go/pkg/tool/darwin_amd64/vet
- FormatTool:/Users/Li-jianying/git/bin/goimports
- LintTool:/usr/local/go/bin/golint
- GocodeTool:/Users/Li-jianying/git/bin/gocode
- GocodeStatus:Enabled
- OracleTool:/Users/Li-jianying/git/bin/oracle
- Git:/usr/bin/git
- Mercurial:/usr/local/Cellar/mercurial/3.2.1/bin/hg
- PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin
沒有紅色的行就沒有問題了。
專案管理,自動檔案跳轉
- 外掛:project-manager
這個外掛是非常hot的,在atom.io的首頁上排名還是非常靠前的。
- 使用細節:
- 配合tree view ( cmd - ) 開啟關閉project file
- 搜尋專案檔案 ( cmd -t )
輸入的時候按照順序輸入關鍵字,比如說 user模組的controll中的go原始碼。搜尋的時候可以使用多個快捷鍵 =》 user controll go,就可以準確的找到原始碼了
- 開啟專案列表 ( ctrl-cmd-p )
然後就會顯示出來一個專案列表回車就可以開啟專案。
-
總結:
感覺這個外掛的treeview用途的確不是很大,因為正常專案的專案檔案會很多。
不過是快速開啟專案(資料夾)是非常方便的,配合快速開啟檔案還是相當爽的。 -
按快捷鍵之後的效果展示:
自動語法檢查,自動補全
-
外掛go-plus,autocomplete-plus(dependance),gocode
使用 apm install 安裝就可以了。速度還可以。 -
使用細節 在儲存的時候
- 會自動補上imports
- 會自動整理程式碼
比如說 a:=5 會變成 a := 5
兩個空行自動變成一個空格
- lint自動檢查語法錯誤(go build 的錯誤都會顯示出來)
- vet會自動檢查語法拼寫建議
函數,結構體 會提示補上註釋。
比如說會提示你函數前面需要加入godoc型別的注釋: // functionname
注釋的第一行需要使用雙斜槓注釋+空格+函數名+空格+簡短的函數功能說明。
-
使用細節: 在編輯的時候
- go-plus會配合autocomplete-plus會??動補全包名字(tab補全,回車不行,這個真心舒服)
- 包名.之後輸入方法名開頭幾個字母會給出補全建議。
-
安裝之後的演示(類似go-plus官方演示)
-
gocode 外掛自動補全演示
- 這個外掛繼承自autocomplete,因為年久失修。api用的是老版本,所以一直都會出現api警告。(我是實用主義,視而不見)
- gocode如果找不到就進入程式碼找到檔案autocomplete-view.coffee 中105行寫成絕對路徑就肯定沒有問題了。
- 係結快捷鍵,因為這個外掛沒有系結快捷鍵的檔案(keymap)所以需要在keymap.cson下自己手動系結設定如下:
- '.active.pane':
- 'ctrl-;':'gocode:toggle'
- 效果演示
查詢定義
- 外掛 godef
- 使用細節:游標在目的碼上的時候,使用快捷鍵ctrl-k跳轉到目的碼的定義程式碼上。
總結
- 我這裡只是總結了我用的所有的golang相關的atom外掛。
- 要相信golang使用編輯器就夠用的事實了。因為 go tool 實在是太好用了。
我的key map
- cmd-d duplicate line
- cmd-w 關閉標籤
- cmd-r 檔案內的標籤列表
- cmd-e 使用選中的內容做搜尋的pattern
- shift-cmd-f project內部搜尋,這個非常實用。command 設定(keymap.cson)
- '.platform-darwin atom-text-editor':
- 'shift-cmd-D':'find-and-replace:select-next'
感謝golang
- golang能有如此的開發體驗,以及在如此低的版本中表現的這麼好。實在是大牛賜予我們最好的禮物了。
- golang的有如此好的開發工具加上各種擴充套件性比較強的編輯器(vim,emacs,sublime,atom等)開發體驗的確是非常好的。
相關文章