Wednesday, August 31, 2016

vim 的插件 vim-go 的 tutorial

vim-go 的 tutorial  裡頭有很多有趣、有用的技巧。取出一些我覺得比較好用的。

Import 的技巧
:GoImportAs ff fmt
:GoImport strings

Edit 的技巧
if 表示函數的內部 inside a function
dif = delete inside a function
yif = yank   inside a function
vif = visual mode inside a function

af 表示整個函數 -> a function
daf = delete a function
yaf = yank a function
vaf = visual mode a function


Trace 程式碼的技巧
對 channel 的理解
 :GoChannelPeers  選擇某個channel,顯示它的send/receive/def

對 variable 的理解
 :GoReferrers     選擇某個變數,顯示所有被使用的地方。

對於 type 的理解
 :GoImplements    選擇某個類別,顯示它實作的介面。(一個有搭配函數的類別就很可能是有實作介面的類別)
 :GoDescribe      選擇某個類別,顯示所有使用它的函數。(用使用範例來"描述"一個類別)

對於 error 的理解
 :GoWhicherrs     選擇某個錯誤,顯示它可能包含的錯誤資訊。

對 func 的理解
 :GoCallees       選擇某個區域變數(該變數的型態是函數),顯示它可以對應到的函數。
 :GoCallstack     選擇某個函數顯示它被呼叫時的call stack
 :GoCallers       選擇某個函數的定義,顯示它被呼叫的位置

Refactor 的技巧
將區段的程式碼抽取出來,變成函數
 :GoFreevars      區塊選擇一段程式碼之後,顯示這段程式碼裡的輸入變數(input variables)
 :GoRename        修改一個變數的命名,自動修改多個位置。


註:在新版的 vim-go ,已經用 guru 取代了 oracle 。所以如果沒有看到 oracle ,不用再去找了。