Go開發工具

來源:互聯網
上載者:User
1.4 Go開發工具

本節我將介紹幾個開發工具,它們都具有自動化提示,自動化fmt功能。因為它們都是跨平台的,所以安裝步驟之類的都是通用的。

LiteIDE

LiteIDE是一款專門為Go語言開發的跨平台輕量級整合式開發環境(IDE),由visualfc編寫。

圖1.4 LiteIDE主介面

LiteIDE主要特點:

  • 支援主流作業系統

    • Windows
    • Linux
    • MacOS X
  • Go編譯環境管理和切換
    • 管理和切換多個Go編譯環境
    • 支援Go語言交叉編譯
  • 與Go標準一致的專案管理方式
    • 基於GOPATH的包瀏覽器
    • 基於GOPATH的編譯系統
    • 基於GOPATH的Api文檔檢索
  • Go語言的編輯支援
    • 類瀏覽器和大綱顯示
    • Gocode(代碼自動完成工具)的完美支援
    • Go語言文檔查看和Api快速檢索
    • 代碼錶達式資訊顯示F1
    • 原始碼定義跳轉支援F2
    • Gdb斷點和調試支援
    • gofmt自動格式化支援
  • 其他特徵
    • 支援多國語言介面顯示
    • 完全外掛程式體繫結構
    • 支援編輯器色彩配置
    • 基於Kate的文法顯示支援
    • 基於全文的單詞自動完成
    • 支援鍵盤快速鍵綁定方案
    • Markdown文檔編輯支援
      • 即時預覽和同步顯示
      • 自訂CSS顯示
      • 可匯出HTML和PDF文檔
      • 批量轉換/合并為HTML/PDF文檔

LiteIDE安裝配置

  • LiteIDE安裝

    •  http://code.google.com/p/golangide
    • 源碼地址 https://github.com/visualfc/liteide

    首先安裝好Go語言環境,然後根據作業系統下載LiteIDE對應的壓縮檔直接解壓即可使用。

  • 安裝Gocode

    啟用Go語言的輸入自動完成需要安裝Gocode:

    go get -u github.com/nsf/gocode
  • 編譯環境設定

    根據自身系統要求切換和配置LiteIDE當前使用的環境變數。

    以Windows作業系統,64位Go語言為例, 工具列的環境配置中選擇win64,點編輯環境,進入LiteIDE編輯win64.env檔案

    GOROOT=c:\goGOBIN=GOARCH=amd64GOOS=windowsCGO_ENABLED=1PATH=%GOBIN%;%GOROOT%\bin;%PATH%。。。

    將其中的GOROOT=c:\go修改為當前Go安裝路徑,存檔即可,如果有MinGW64,可以將c:\MinGW64\bin加入PATH中以便go調用gcc支援CGO編譯。

    以Linux作業系統,64位Go語言為例, 工具列的環境配置中選擇linux64,點編輯環境,進入LiteIDE編輯linux64.env檔案

    GOROOT=$HOME/goGOBIN=GOARCH=amd64GOOS=linuxCGO_ENABLED=1PATH=$GOBIN:$GOROOT/bin:$PATH   。。。

    將其中的GOROOT=$HOME/go修改為當前Go安裝路徑,存檔即可。

  • GOPATH設定

    Go語言的工具鏈使用GOPATH設定,是Go語言開發的項目路徑列表,在命令列中輸入(在LiteIDE中也可以Ctrl+,直接輸入)go help gopath快速查看GOPATH文檔。

    在LiteIDE中可以方便的查看和設定GOPATH。通過菜單-查看-GOPATH設定,可以查看系統中已存在的GOPATH列表, 同時可根據需要添加項目目錄到自訂GOPATH列表中。

Sublime Text

這裡將介紹Sublime Text 2(以下簡稱Sublime)+GoSublime+gocode+MarGo的組合,那麼為什麼選擇這個組合呢?

  • 自動化提示代碼,如所示

    圖1.5 sublime自動化提示介面

  • 儲存的時候自動格式化代碼,讓您編寫的代碼更加美觀,符合Go的標準。

  • 支援專案管理

    圖1.6 sublime專案管理介面

  • 支援文法高亮

  • Sublime Text 2可免費使用,只是儲存次數達到一定數量之後就會提示是否購買,點擊取消繼續用,和正式註冊版本沒有任何區別。

接下來就開始講如何安裝,下載Sublime

根據自己相應的系統下載相應的版本,然後開啟Sublime,對於不熟悉Sublime的同學可以先看一下這篇文章Sublime Text 2 入門及技巧

  1. 開啟之後安裝 Package Control:Ctrl+ 開啟命令列,執行如下代碼:

    import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'

這個時候重啟一下Sublime,可以發現在在功能表列多了一個如下的欄目,說明Package Control已經安裝成功了。

圖1.7 sublime包管理
  1. 接下來安裝gocode和MarGo。 開啟終端運行如下代碼(需要git)

    go get github.com/nsf/gocodego get github.com/DisposaBoy/MarGo

這個時候我們會發現在$GOPATH/bin下面多了兩個可執行檔,gocode和MarGo,這兩個檔案會在GoSublime載入時自動啟動。

  1. 安裝完之後就可以安裝Sublime的外掛程式了。需安裝GoSublime、SidebarEnhancements和Go Build,安裝外掛程式之後記得重啟Sublime生效,Ctrl+Shift+p開啟Package Controll 輸入pcip(即“Package Control: Install Package”的縮寫)。

這個時候看左下角顯示正在讀取包資料,完成之後出現如下介面

圖1.8 sublime安裝外掛程式介面

這個時候輸入GoSublime,按確定就開始安裝了。同理應用於SidebarEnhancements和Go Build。

  1. 驗證是否安裝成功,你可以開啟Sublime,開啟main.go,看看文法是不是高亮了,輸入import是不是自動化提示了,import "fmt"之後,輸入fmt.是不是自動化提示有函數了。

如果已經出現這個提示,那說明你已經安裝完成了,並且完成了自動提示。

如果沒有出現這樣的提示,一般就是你的$PATH沒有配置正確。你可以開啟終端,輸入gocode,是不是能夠正確運行,如果不行就說明$PATH沒有配置正確。

Vim

Vim是從vi發展出來的一個文字編輯器, 代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程式員中被廣泛使用。

圖1.9 VIM編輯器自動化提示Go介面

  1. 配置vim高亮顯示

    cp -r $GOROOT/misc/vim/* ~/.vim/
  2. 在~/.vimrc檔案中增加文法高亮顯示

    filetype plugin indent onsyntax on
  3. 安裝Gocode

    go get -u github.com/nsf/gocode

    gocode預設安裝到$GOBIN下面。

  4. 配置Gocode

    ~ cd $GOPATH/src/github.com/nsf/gocode/vim~ ./update.bash~ gocode set propose-builtins truepropose-builtins true~ gocode set lib-path "/home/border/gocode/pkg/linux_amd64"lib-path "/home/border/gocode/pkg/linux_amd64"~ gocode setpropose-builtins truelib-path "/home/border/gocode/pkg/linux_amd64"

    gocode set裡面的兩個參數的含意說明:

    propose-builtins:是否自動提示Go的內建函數、類型和常量,預設為false,不提示。

    lib-path:預設情況下,gocode只會搜尋$GOPATH/pkg/$GOOS_$GOARCH 和 $GOROOT/pkg/$GOOS_$GOARCH目錄下的包,當然這個設定就是可以設定我們額外的lib能訪問的路徑

  5. 恭喜你,安裝完成,你現在可以使用:e main.go體驗一下開發Go的樂趣。

Emacs

Emacs傳說中的神器,她不僅僅是一個編輯器,它是一個整合環境,或可稱它為整合式開發環境,這些功能如讓使用者置身於全功能的作業系統中。

圖1.10 Emacs編輯Go主介面

  1. 配置Emacs高亮顯示

    cp $GOROOT/misc/emacs/* ~/.emacs.d/
  2. 安裝Gocode

    go get -u github.com/nsf/gocode

    gocode預設安裝到$GOBIN裡面下面。

  3. 配置Gocode

    ~ cd $GOPATH/src/github.com/nsf/gocode/emacs~ cp go-autocomplete.el ~/.emacs.d/~ gocode set propose-builtins truepropose-builtins true~ gocode set lib-path "/home/border/gocode/pkg/linux_amd64" // 換為你自己的路徑lib-path "/home/border/gocode/pkg/linux_amd64"~ gocode setpropose-builtins truelib-path "/home/border/gocode/pkg/linux_amd64"
  4. 需要安裝 Auto Completion

下載AutoComplete並解壓

~ make install DIR=$HOME/.emacs.d/auto-complete

配置~/.emacs檔案

    ;;auto-complete    (require 'auto-complete-config)    (add-to-list 'ac-dictionary-directories "~/.emacs.d/auto-complete/ac-dict")    (ac-config-default)    (local-set-key (kbd "M-/") 'semantic-complete-analyze-inline)    (local-set-key "." 'semantic-complete-self-insert)    (local-set-key ">" 'semantic-complete-self-insert)

詳細資料參考: http://www.emacswiki.org/emacs/AutoComplete

  1. 配置.emacs

    ;; golang mode(require 'go-mode-load)(require 'go-autocomplete);; speedbar;; (speedbar 1)(speedbar-add-supported-extension ".go")(add-hook'go-mode-hook'(lambda ()    ;; gocode    (auto-complete-mode 1)    (setq ac-sources '(ac-source-go))    ;; Imenu & Speedbar    (setq imenu-generic-expression        '(("type" "^type *\\([^ \t\n\r\f]*\\)" 1)        ("func" "^func *\\(.*\\) {" 1)))    (imenu-add-to-menubar "Index")    ;; Outline mode    (make-local-variable 'outline-regexp)    (setq outline-regexp "//\\.\\|//[^\r\n\f][^\r\n\f]\\|pack\\|func\\|impo\\|cons\\|var.\\|type\\|\t\t*....")    (outline-minor-mode 1)    (local-set-key "\M-a" 'outline-previous-visible-heading)    (local-set-key "\M-e" 'outline-next-visible-heading)    ;; Menu bar    (require 'easymenu)    (defconst go-hooked-menu        '("Go tools"        ["Go run buffer" go t]        ["Go reformat buffer" go-fmt-buffer t]        ["Go check buffer" go-fix-buffer t]))    (easy-menu-define        go-added-menu        (current-local-map)        "Go tools"        go-hooked-menu)    ;; Other    (setq show-trailing-whitespace t)    ));; helper function(defun go ()    "run current buffer"    (interactive)    (compile (concat "go run " (buffer-file-name))));; helper function(defun go-fmt-buffer ()    "run gofmt on current buffer"    (interactive)    (if buffer-read-only    (progn        (ding)        (message "Buffer is read only"))    (let ((p (line-number-at-pos))    (filename (buffer-file-name))    (old-max-mini-window-height max-mini-window-height))        (show-all)        (if (get-buffer "*Go Reformat Errors*")    (progn        (delete-windows-on "*Go Reformat Errors*")        (kill-buffer "*Go Reformat Errors*")))        (setq max-mini-window-height 1)        (if (= 0 (shell-command-on-region (point-min) (point-max) "gofmt" "*Go Reformat Output*" nil "*Go Reformat Errors*" t))    (progn        (erase-buffer)        (insert-buffer-substring "*Go Reformat Output*")        (goto-char (point-min))        (forward-line (1- p)))    (with-current-buffer "*Go Reformat Errors*"    (progn        (goto-char (point-min))        (while (re-search-forward "<standard input>" nil t)        (replace-match filename))        (goto-char (point-min))        (compilation-mode))))        (setq max-mini-window-height old-max-mini-window-height)        (delete-windows-on "*Go Reformat Output*")        (kill-buffer "*Go Reformat Output*"))));; helper function(defun go-fix-buffer ()    "run gofix on current buffer"    (interactive)    (show-all)    (shell-command-on-region (point-min) (point-max) "go tool fix -diff"))
  2. 恭喜你,你現在可以體驗在神器中開發Go的樂趣。預設speedbar是關閉的,如果開啟需要把 ;; (speedbar 1) 前面的注釋去掉,或者也可以通過 M-x speedbar 手動開啟。

Eclipse

Eclipse也是非常常用的開發利器,以下介紹如何使用Eclipse來編寫Go程式。

圖1.11 Eclipse編輯Go的主介面

  1. 首先下載並安裝好Eclipse

  2. 下載goeclipse外掛程式

    http://code.google.com/p/goclipse/wiki/InstallationInstructions

  3. 下載gocode,用於go的代碼補全提示

    gocode的github地址:

    https://github.com/nsf/gocode

    在windows下要安裝git,通常用msysgit

    再在cmd下安裝:

    go get -u github.com/nsf/gocode

    也可以下載代碼,直接用go build來編譯,會產生gocode.exe

  4. 下載MinGW並按要求裝好

  5. 配置外掛程式

    Windows->Reference->Go

(1).配置Go的編譯器

圖1.12 設定Go的一些基礎資訊

(2).配置Gocode(可選,代碼補全),設定Gocode路徑為之前產生的gocode.exe檔案

圖1.13 設定gocode資訊

(3).配置GDB(可選,做調試用),設定GDB路徑為MingW安裝目錄下的gdb.exe檔案

圖1.14 設定GDB資訊

  1. 測試是否成功

    建立一個go工程,再建立一個hello.go。如:

    圖1.15 建立項目編輯檔案

    調試如下(要在console中用輸入命令來調試):

    圖1.16 調試Go程式

IntelliJ IDEA

熟悉Java的讀者應該對於idea不陌生,idea是通過一個外掛程式來支援go語言的高亮文法,代碼提示和重構實現。

  1. 先下載idea,idea支援多平台:win,mac,linux,如果有錢就買個正式版,如果不行就使用社區免費版,對於只是開發Go語言來說免費版足夠用了

  2. 安裝Go外掛程式,點擊菜單File中的Setting,找到Plugins,點擊,Broswer repo按鈕。國內的使用者可能會報錯,自己解決哈。

  3. 這時候會看見很多外掛程式,搜尋找到Golang,雙擊,download and install。等到golang那一行後面出現Downloaded標誌後,點OK。

    然後點 Apply .這時候IDE會要求你重啟。

  4. 重啟完畢後,建立新項目會發現已經可以建立golang項目了:

    下一步,會要求你輸入 go sdk的位置,一般都安裝在C:\Go,linux和mac根據自己的安裝目錄設定,選中目錄確定,就可以了。

links
  • 目錄
  • 上一節: Go 命令
  • 下一節: 總結
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.