歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux配置 >> golang環境配置

golang環境配置

日期:2017/2/27 14:57:28   编辑:Linux配置

開發環境的必要特征

  1. 項目管理
  2. 快速文件跳轉
  3. 自動語法檢查
  4. 自動補全
  5. 查找定義
  6. 啟動速度快
  7. 如果自己有需求的話插件可以隨便寫

(project,lint,hint,autocomplete)

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

我的大環境

  1. OSX
  2. GO 1.4
  3. HomeBrew

go 環境安裝

這一部分是最重要的,如果沒有它,每次build的時候出現 too many errors 心裡真的是非常難過的。


  1. 環境配置:(golint,gooracle,mercurial)
    1. 安裝mercurial: brew install mercurial

      這個東西是用來做版本管理的,也是下載代碼的工具類似git,貌似google的項目用的挺多的。

    2. 安裝golint:
      $ go get github.com/golang/lint
      $ go install github.com/golang/lint
    3. 安裝gooracle
      go get code.google.com/p/go.tools/cmd/oracle
    4. 安裝goimport
      go get golang.org/x/tools/cmd/goimports
    5. 安裝gocode
      go get -u github.com/nsf/gocode
    6. 安裝 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

  1. go install 之後會在 $GOPATH/bin/ 中出現各種工具文件

    最後不要忘記復制上面的命令到 $GOROOT/bin/下面

    1. gocode 提供代碼補全
    2. godef 代碼跳轉
    3. gofmt 自動代碼整理
    4. golint 代碼語法檢查
    5. goimports 自動整理imports
    6. oracle 代碼callgraph查詢(plugin中還在todolist中,但是不配置一直報錯。實在煩。)
  2. 最後的配置結果(安裝完之後 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. 按快捷鍵之後的效果展示:

      自動語法檢,自動補全

    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下自己手動綁定配置如下:
        '.active.pane':
        'ctrl-;': 'gocode:toggle'
        效果演示
        
  1. 查找定義

  2. 插件 godef
  3. 使用細節: 光標在目標代碼上的時候,使用快捷鍵ctrl-k跳轉到目標代碼的定義代碼上。
  4. 我這裡只是總結了我用的所有的golang相關的atom插件。
  5. 要相信golang使用編輯器就夠用的事實了。因為 go tool 實在是太好用了。
  6. cmd-d duplicate line
  7. cmd-w 關閉標簽
  8. cmd-r 文件內的標簽列表
  9. cmd-e 使用選中的內容做搜索的pattern
  10. shift-cmd-f project內部搜索,這個非常實用。command 配置(keymap.cson) >
    '.platform-darwin atom-text-editor':
    'shift-cmd-D': 'find-and-replace:select-next'
  11. golang能有如此的開發體驗,以及在如此低的版本中表現的這麼好。實在是大牛賜予我們最好的禮物了。
  12. golang的有如此好的開發工具加上各種擴展性比較強的編輯器(vim,emacs,sublime,atom等)開發體驗的確是非常好的。
Copyright © Linux教程網 All Rights Reserved