1. 程式人生 > 其它 >vi進行多檔案搜尋

vi進行多檔案搜尋

轉自https://blog.csdn.net/u013408061/article/details/76131296
1、多檔案查詢
1.1、grep
直接在vim中輸入:grep abc * 這是直接呼叫unix下的grep命令
1.2、vimgrep
基本用法就是
:vimgrep /匹配模式/[g][j] 要搜尋的檔案/範圍
:vim[grep][!] /{pattern}/[g][j] {file} ...
g 和 j 是兩個可選的標誌位,g表示是否把每一行的多個匹配結果都加入。j表示是否搜尋完後定位到第一個匹配位置。
要搜尋的檔案 可以是具體的檔案路徑,也可以是帶萬用字元的路徑比如 .as **/.as ,**表示遞迴所有子目錄。 要搜尋的檔案和或搜尋範圍都可 以寫多個,用空格分開。

例子:
:vimgrep /<flash>/ **/*.as 搜尋當前目錄以及所有子目錄內as檔案中的 "flash"
:vimgrep /an error/ .c 就是在所有的.c檔案中搜索an error。
:vimgrep/an error/
意思是查詢當前目錄下的檔案中的an error,不包括子目錄

1.3、定位
輸入上述的命令後,可以像輸入:make命令,那樣定位匹配到的檔案位置
:cnext (:cn) 下一個匹配位置
:cprevious (:cp) 上一個匹配位置
:cwindow (:cw) quickfix視窗,可以選擇匹配的檔案位置
:cl(:clist) 檢視所有匹配的位置

2、多檔案替換(arg)
a、加入要處理的檔案 :args *.txt
b、輸入對上述檔案的動作 :argdo %s/hate/love/gc | update (這裡將hate替換成love,update表示要寫入到檔案中,否則只作替換而不寫入)