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