Golang 環境配置建議(Atom)
開發環境的必要特征
-
項目管理
-
快速文件跳轉
-
自動語法檢查
-
自動補全
-
查找定義
-
啟動速度快
-
如果自己有需求的話插件可以隨便寫
-
靈活的運行配置
大環境
-
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 |
-
安裝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/ 中出現各種工具文件
最后不要忘記復制上面的命令到 $GOROOT/bin/下面
-
gocode 提供代碼補全
-
godef 代碼跳轉
-
gofmt 自動代碼整理
-
golint 代碼語法檢查
-
goimports 自動整理imports
-
oracle 代碼callgraph查詢(plugin中還在todolist中,但是不配置一直報錯。實在煩。)
-
最后的配置結果(安裝完之后 Package->Go Plus->Display Go Information)
Cover Tool: /usr/local/go/pkg/tool/darwin_amd64/cover Vet Tool: /usr/local/go/pkg/tool/darwin_amd64/vet Format Tool: /Users/Li-jianying/git/bin/goimports Lint Tool: /usr/local/go/bin/golint Gocode Tool: /Users/Li-jianying/git/bin/gocode Gocode Status: Enabled Oracle Tool: /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跳轉到目標代碼的定義代碼上。
靈活的運行
-
安裝插件atom-runner
-
修改源代碼中的go run運行為go: 'sh [絕對路徑到你的全局run腳上] '+atom.project.getRepo().project.path
-
腳本的 $1 會是你項目運行的路徑。然后你的所有項目都可以添加一個run.sh 來指定一個構建運行的方案。
-
做完之后不管當前在查看什么文件都可以運行整個項目。
-
其他語言也可以這樣做。畢竟單個文件的項目不是很常見(開發的時候)
總結
-
我這里只是總結了我用的所有的golang相關的atom插件。
-
要相信golang使用編輯器就夠用的事實了。因為go tool實在是太好用了。
我的key map
-
cmd-dduplicate line
-
cmd-w關閉標簽
-
cmd-r文件內的標簽列表
-
cmd-e使用選中的內容做搜索的pattern
-
shift-cmd-fproject內部搜索,這個非常實用。command 配置(keymap.cson)
>
|
'.platform-darwin atom-text-editor': 'shift-cmd-D': 'find-and-replace:select-next' |
原文地址:http://www.philo.top/2015/02/06/golang-%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE%E5%BB%BA%E8%AE%AE/