首頁 > 軟體

Golang 環境設定建議

2020-06-16 18:09:05

開發環境的必要特徵

  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)
    • 安裝mercurial: brew install mercurial

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

    • 安裝golint:
      1. $ go get github.com/golang/lint
      2. $ go install github.com/golang/lint
  2. 安裝gooracle
    1. go get code.google.com/p/go.tools/cmd/oracle
  3. 安裝goimport
    1. go get golang.org/x/tools/cmd/goimports
  4. 安裝gocode
    1. go get-u github.com/nsf/gocode
  5. 安裝 godef
    1. go get-v code.google.com/p/rog-go/exp/cmd/godef
    2. go install -v code.google.com/p/rog-go/exp/cmd/godef
  6. 安裝環境的時候經常會出現下載不下來的問題,大概是我網路不好吧。連線google經常出現問題。

    解決方案:

    golang中國的下載頻道中有一個第三方包的下載工具,只要輸入地址之後人家會給你提供下載tar包的。
    放到gopath中就ok了。

    此步驟只能替代go get的步驟,最後還是需要go install

  7. go install 之後會在 $GOPATH/bin/ 中出現各種工具檔案

    • gocode 提供程式碼補全
    • godef 程式碼跳轉
    • gofmt 自動程式碼整理
    • golint 程式碼語法檢查
    • goimports 自動整理imports
    • oracle 程式碼callgraph查詢(plugin中還在todolist中,但是不設定一直報錯。實在煩。)

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

  8. 最後的設定結果(安裝完之後 Package->Go Plus->Display Go Information)

    1. CoverTool:/usr/local/go/pkg/tool/darwin_amd64/cover
    2. VetTool:/usr/local/go/pkg/tool/darwin_amd64/vet
    3. FormatTool:/Users/Li-jianying/git/bin/goimports
    4. LintTool:/usr/local/go/bin/golint
    5. GocodeTool:/Users/Li-jianying/git/bin/gocode
    6. GocodeStatus:Enabled
    7. OracleTool:/Users/Li-jianying/git/bin/oracle
    8. Git:/usr/bin/git
    9. Mercurial:/usr/local/Cellar/mercurial/3.2.1/bin/hg
    10. PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin

     沒有紅色的行就沒有問題了。

專案管理,自動檔案跳轉

  1. 外掛:project-manager

    這個外掛是非常hot的,在atom.io的首頁上排名還是非常靠前的。

  2. 使用細節:
    • 配合tree view ( cmd - ) 開啟關閉project file
    • 搜尋專案檔案 ( cmd -t )

      輸入的時候按照順序輸入關鍵字,比如說 user模組的controll中的go原始碼。搜尋的時候可以使用多個快捷鍵 =》 user controll go,就可以準確的找到原始碼了

    • 開啟專案列表 ( ctrl-cmd-p )

      然後就會顯示出來一個專案列表回車就可以開啟專案。

  3. 總結:

    感覺這個外掛的treeview用途的確不是很大,因為正常專案的專案檔案會很多。
    不過是快速開啟專案(資料夾)是非常方便的,配合快速開啟檔案還是相當爽的。

  4. 按快捷鍵之後的效果展示:

自動語法檢查,自動補全

  1. 外掛go-plus,autocomplete-plus(dependance),gocode
    使用 apm install 安裝就可以了。速度還可以。

  2. 使用細節 在儲存的時候

    • 會自動補上imports
    • 會自動整理程式碼

      比如說 a:=5 會變成 a := 5

      兩個空行自動變成一個空格

    • lint自動檢查語法錯誤(go build 的錯誤都會顯示出來)
    • vet會自動檢查語法拼寫建議

      函數,結構體 會提示補上註釋。

      比如說會提示你函數前面需要加入godoc型別的注釋: // functionname

      注釋的第一行需要使用雙斜槓注釋+空格+函數名+空格+簡短的函數功能說明。

  3. 使用細節: 在編輯的時候

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

  5. gocode 外掛自動補全演示

    • 這個外掛繼承自autocomplete,因為年久失修。api用的是老版本,所以一直都會出現api警告。(我是實用主義,視而不見)
    • gocode如果找不到就進入程式碼找到檔案autocomplete-view.coffee 中105行寫成絕對路徑就肯定沒有問題了。
    • 係結快捷鍵,因為這個外掛沒有系結快捷鍵的檔案(keymap)所以需要在keymap.cson下自己手動系結設定如下:
      1. '.active.pane':
      2. 'ctrl-;':'gocode:toggle'
    • 效果演示

查詢定義

  1. 外掛 godef
  2. 使用細節:游標在目的碼上的時候,使用快捷鍵ctrl-k跳轉到目的碼的定義程式碼上。

總結

  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)
    1. '.platform-darwin atom-text-editor':
    2. 'shift-cmd-D':'find-and-replace:select-next'

感謝golang

  1. golang能有如此的開發體驗,以及在如此低的版本中表現的這麼好。實在是大牛賜予我們最好的禮物了。
  2. golang的有如此好的開發工具加上各種擴充套件性比較強的編輯器(vim,emacs,sublime,atom等)開發體驗的確是非常好的。


IT145.com E-mail:sddin#qq.com