Golang 環境配置建議(Atom)

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/git

 

開發環境的必要特徵

  1. 項目管理
  2. 快速文件跳轉
  3. 自動語法檢查
  4. 自動補全
  5. 查找定義
  6. 啓動速度快
  7. 若是本身有需求的話插件能夠隨便寫
  8. 靈活的運行配置

(project,lint,hint,autocomplete)

 

要實現上面幾點咱們來一步一步的配置。github

個人大環境

  1. OSX
  2. GO 1.4
  3. HomeBrew

go 環境安裝

這一部分是最重要的,若是沒有它,每次build的時候出現 too many errors 內心真的是很是難過的。golang

  1. 環境配置:(golint,gooracle,mercurial)shell

    1. 安裝mercurial: brew install mercurial > 這個東西是用來作版本管理的,也是下載代碼的工具相似git,貌似google的項目用的挺多的。
    2. 安裝golint: shell $ go get github.com/golang/lint $ go install github.com/golang/lint
    3. 安裝gooracle shell go get code.google.com/p/go.tools/cmd/oracle
    4. 安裝goimport shell go get golang.org/x/tools/cmd/goimports
    5. 安裝gocode shell go get -u github.com/nsf/gocode
    6. 安裝 godef shell go get -v code.google.com/p/rog-go/exp/cmd/godef go install -v code.google.com/p/rog-go/exp/cmd/godef
  2. 安裝環境的時候常常會出現下載不下來的問題,大概是我網絡很差吧。鏈接google常常出現問題。 > 解決方案: > golang中國的下載頻道中有一個第三方包的下載工具,只要輸入地址以後人家會給你提供下載tar包的。 > 放到gopath中就ok了。 > 此步驟只能替代Go get的步驟,最後仍是須要go installjson

  3. go install 以後會在 $GOPATH/bin/ 中出現各類工具文件vim

    1. gocode 提供代碼補全
    2. godef 代碼跳轉
    3. gofmt 自動代碼整理
    4. golint 代碼語法檢查
    5. goimports 自動整理imports
    6. oracle 代碼callgraph查詢(plugin中還在todolist中,可是不配置一直報錯。實在煩。)

最後不要忘記複製上面的命令到 $GOROOT/bin/下面api

  1. 最後的配置結果(安裝完以後 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 沒有紅色的行就沒有問題了。

項目管理,自動文件跳轉

  1. 插件:project-manager >這個插件是很是hot的,在atom.io的首頁上排名仍是很是靠前的。
  2. 使用細節:
    1. 配合tree view ( cmd - \) 打開關閉project file
    2. 搜索項目文件 ( cmd -t ) > 輸入的時候按照順序輸入關鍵字 > 好比說 user模塊的controll中的go源代碼 > 搜索的時候可使用多個快捷鍵 =》 user controll go > 就能夠準確的找到源代碼了
    3. 打開項目列表 ( ctrl-cmd-p ) > 而後就會顯示出來一個項目列表回車就能夠打開項目。
  3. 總結: > 感受這個插件的treeview用途的確不是很大,由於正常項目的項目文件會不少。 > 不過是快速打開項目(文件夾)是很是方便的,配合快速打開文件仍是至關爽的。網絡

  4. 按快捷鍵以後的效果展現: oracle

    自動語法檢,自動補全

  5. 插件go-plus,autocomplete-plus(dependance),gocode 使用 apm install 安裝就能夠了。速度還能夠。編輯器

  6. 使用細節 在保存的時候

    1. 會自動補上imports
    2. 會自動整理代碼 > 好比說 a:=5 會變成 a := 5 兩個空行自動變成一個空格
    3. lint自動檢查語法錯誤(go build 的錯誤都會顯示出來)
    4. vet會自動檢查語法拼寫建議 > 函數,結構體 會提示補上註釋。 好比說會提示你函數前面須要加入godoc類型的註釋: // functionname 註釋的第一行須要使用雙斜槓註釋+空格+函數名+空格+簡短的函數功能說明。
  7. 使用細節: 在編輯的時候

    1. go-plus會配合autocomplete-plus會自動補全包名字(tab補全,回車不行,這個真心舒服)
    2. 包名.以後輸入方法名開頭幾個字母會給出補全建議。
  8. 安裝以後的演示(相似go-plus官方演示) 

  9. gocode 插件自動補全演示

    1. 這個插件繼承自autocomplete,由於年久失修。api用的是老版本,因此一直都會出現api警告。(我是實用主義,視而不見)
    2. gocode若是找不到就進入代碼找到文件autocomplete-view.coffee 中105行寫成絕對路徑就確定沒有問題了。
    3. 綁定快捷鍵,由於這個插件沒有綁定快捷鍵的文件(keymap)因此須要在keymap.cson下本身手動綁定配置以下:json '.active.pane': 'ctrl-;': 'gocode:toggle'
    4. 效果演示

      查找定義

  10. 插件 godef

  11. 使用細節: 光標在目標代碼上的時候,使用快捷鍵ctrl-k跳轉到目標代碼的定義代碼上。

靈活的運行

  1. 安裝插件atom-runner
  2. 修改源代碼中的go run運行爲go: 'sh [絕對路徑到你的全局run腳上] '+atom.project.rootDirectories[0].path
  3. 腳本的 $1 會是你項目運行的路徑。而後你的全部項目均可以添加一個run.sh 來指定一個構建運行的方案。
  4. 作完以後無論當前在查看什麼文件均可以運行整個項目。
  5. 其餘語言也能夠這樣作。畢竟單個文件的項目不是很常見(開發的時候)

總結

  1. 我這裏只是總結了我用的全部的golang相關的atom插件。
  2. 要相信golang使用編輯器就夠用的事實了。由於 go tool 實在是太好用了。

個人key map

  1. cmd-d duplicate line
  2. cmd-w 關閉標籤
  3. cmd-r 文件內的標籤列表
  4. cmd-e 使用選中的內容作搜索的pattern
  5. shift-cmd-f project內部搜索,這個很是實用。command 配置(keymap.cson) >json '.platform-darwin atom-text-editor': 'shift-cmd-D': 'find-and-replace:select-next'

感謝golang

  1. golang能有如此的開發體驗,以及在如此低的版本中表現的這麼好。實在是大牛賜予咱們最好的禮物了。
  2. golang的有如此好的開發工具加上各類擴展性比較強的編輯器(vim,emacs,sublime,atom等)開發體驗的確是很是好的。
相關文章
相關標籤/搜索