在vim中提供2中方法來在其他檔案或者檔案夾中搜尋字元串,第一種是vimgrep還有一種是grep。
如果隻是在目前打開的檔案中查找字元串的,使用
:?
後面加上想要搜尋的字元串就可以。
這裡要解決的是在别的檔案中,也許這個檔案還沒有打開,或者需要在多個檔案中操作,比如在目前檔案夾下面所有.c的檔案中查找,或者在莫個檔案夾中查找。這些情況下,我們可以使用imgrep或者grep。這裡隻介紹vimgrep。
這是個vim的内部指令,因為可以在vim内部直接使用,
:vimgrep
這個指令還可簡寫為vim
:vim
用例1
在目前檔案夾下面所有.c檔案中查找字元串 classa
:vimgrep /classa/gj ./*.c
解釋一下:
g: 如果一行中出現多處,隻顯示一次,沒有g就會出現多次
j: 隻是列出所有比對的行,沒有j那麼就會跳去第一個比對的行
用例2 在目前檔案夾及其子檔案夾下面查找字元串classa
:vimgrep /classa/gj **/*.*
搜尋完畢後可以使用copen或者cw指令來打開搜尋的結果。使用jk來移動選中行,回車可以跳到對應的檔案。
copen後面可以指定視窗的高度。
注意當去到搜到到的檔案後,目前的視窗會被該檔案覆寫,那麼怎麼回到原來的檔案,
ctrl+^
更多的資訊可以使用
:help vimgrep
來檢視。