Go 語言有嚴格的程式格式要求,若沒有照個格式則無法正常進行編譯,因此多數時候都會搭配 go fmt
指令來進行程式自動修正。
在這裡,介紹一個 vim 的 go 編譯管理工具 : vim-go 與 vim-plug,如何能有效率的開發 Go 專案。
安裝 Vim-go 與 vim-plug
安裝 vim-go
git clone https://github.com/fatih/vim-go.git ~/.vim/plugged/vim-go
安裝 vim-plug
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
接著,開啟 ~/.vimrc
CVT2HUGO: 並且加入以下內容
call plug#begin()
Plug 'fatih/vim-go', { 'do': ':GoInstallBinaries' }
call plug#end()
第一個. Hello world ~ 建立 main go
安裝 vim-go 及. vim-plug 之後,我們來建立一個 go 檔案
vim main.go
當檔案開啟時,會發現自動會生成. Go 基本程式結構
package main
import "fmt"
func main() {
fmt.Println("vim-go")
}
幾本指令介紹
接著,說明一些常用的指令,也是使用 Vim-Go 強大之處,
:GoRum 等同 go rum
首先,在. go rum 可以透過以下指令直接執行預覽
只執行目前編輯的檔案,可輸入以下指令,相當於執行 ```go
CVT2HUGO: rum main.go```
:GoRun %
若是要執行整個專案,則可忽略. %
:GoRun
GoBuild 等同 go build*
透過以下指令可等同執行 ```go
CVT2HUGO: build```
:GoBuild
格式自動修正及檢查程式碼
在 vim-go 直接透過. :w
例如,可以貼上以下程式,儲存試試看
CVT2HUGO: 儲存檔案或者執行 ```:GoBuild```
package main
import "fmt"
var b = foo()
func main()
{
fmt.Println("vim-go")
a
}
CVT2HUGO: ,都會自動將格式進行修正,以及同時檢查程式碼是否有誤
會出現錯誤提示
1 main.go|8 col 1| unexpected semicolon or newline before {
當我們將錯誤的地方在修正
package main
import "fmt"
var b = foo()
func main()
{
fmt.Println("vim-go")
a
}
接著執行 :w
CVT2HUGO: 儲存後,格式就會自動修正為正確格式
package main
import "fmt"
var b = foo()
func main() {
fmt.Println("vim-go")
a
}
GoTest 等同. go test*
在. Go 進行測試時,只要執行 ```go
使用 vim-go 及 vim-plug 可以透過以下指令直接運行 test
CVT2HUGO: test```就可以執行
:GoTest
CVT2HUGO: *_test.go
的檔案,或者透過 Test 開頭的函式 func Test測試名稱(*testing.T)
也可自動被偵測執行測試,運行測試及輸出測試結果
到這,對於 Go-Vim 應該有基本了解,其他更多介紹,可在參考 Go-Vim 文件