這裡介紹如何在 Vim 編輯器中使用 g
指令,快速搜尋游標所在的文字。
在使用 Vim 撰寫程式時,時常會需要在整個程式碼檔案中搜尋某個變數或函數的定義,或是尋找某個變數在哪些地方出現過,在 Vim 中最基本的搜尋方式是使用 /
向後搜尋,或是使用 ?
向後搜尋,不過每次使用這些搜尋功能時都要自己手動輸入要搜尋的字串,但是如果要搜尋的變數名稱很長的時候,要這樣自己打就很麻煩了。
這裡我們介紹一個 Vim 中很實用的 g
指令,它可以讓使用者不必輸入那麼多文字就可以進行快速的搜尋與移動。
在使用之前,先將游標移動至要搜尋的變數上(這裡假設我們搜尋 immediate_callback_sym
):
接著就可以使用下面幾種方式來搜尋指定的變數:
g*
:向後搜尋游標所在位置的變數(或任何文字)。g#
:跟g*
一樣,但是向前搜尋。gd
:移動到區域性(local)變數的宣告(declaration)位置。gD
:移動到全域性(global)變數的宣告位置。
如果這時候輸入 g*
,Vim 就會向後搜尋 immediate_callback_sym
:
如果輸入 gd
,就會移到 immediate_callback_sym
變數宣告的位置:
這裡的 g*
跟 *
作用很相似,如果在 rain
這個文字上使用 g*
,則連同 rainbow
這樣的字也會被納入搜尋,相當於使用 /\<rain\>
的效果:
但若使用 *
的話,就只會搜尋 rain
這個字而已,不會包含 rainbow
,相當於使用 /rain
:
另外 g
指令還有兩個常見的用法:
gg
:移動至檔案的第一行。Ngg
:移動至檔案的第N
行,其中N
可以是任何數字,例如35gg
就是移動至第33
行。G
:移動至檔案的最後一行。
參考資料:wikia