Linux使用vim進行多檔案查詢和替換的方法

2022-09-14 06:33:12 字數 1317 閱讀 4896

在linux平台上,有很多優秀的shell命令組合來做多檔案查詢/替換,比如這些命令:find,sed,grep,awk,perl。但其他平台比如windows上就沒那麼方便了,這時候vim內建的多檔案查詢命令就有用武之地了,雖然比起外部命令來稍微慢了一點。

vim 多檔案查詢

這個vim內建命令就是vimgrep,有兩種基本的使用方式:

:vim[grep][!] //[g][j] 。。。

:vim[grep][!] 。。。

file部分支援萬用字元,*代表當前目錄,**代表當前目錄及其子目錄(遞迴),比如*/*.c代表當前目錄下的c源程式檔案,**/*.c代表當前目錄及其遞迴子目錄下的所有源程式檔案。file部分可以指定多次。

以下命令檢視匹配結果:

:cw[indow] quickfix視窗,結果檔案列表

更詳細的用法參見:help vimgrep 和下面的refs。

vim 多檔案替換

實際上只要如下兩個命令即可(假設要將當前目錄下所有擴充套件名為.txt/.cpp的檔案中的hate替換成love):

:args *.txt *.cpp :argdo %s/hate/love/gc | update

:args *.txt *.cpp

:argdo %s/hate/love/gc | update

完成,解釋如下:

:args *.txt *.cpp

:args *.txt *.cpp

這樣寫會掃瞄當前目錄下的.txt 和 .cpp檔案,並加入到引數列表。但是這樣寫只會稻苗當前目錄,如果想要遞迴掃瞄所有下級目錄的話,用

:args **/*.txt

:args **/*.txt

如果只想掃瞄下一級目錄(即不掃瞄當前目錄)的話,用

:args */*.txt

:args */*.txt

而:argdo %s/hate/love/gc | update

:argdo %s/hate/love/gc | update

是將引數列表中的所有檔案的hate提換成love,並寫入硬碟(如果沒有|update,就不會寫入,但相應的替換也會被中斷)。

最後強調一點,使用替換命令的時候,一定記得備份,因為替換是直接寫入硬碟。

上面就是linux系統vim多檔案查詢和替換的方法介紹了,通過find,sed等命令能夠實現多檔案的相關處理,你也可使用vim內建的多檔案查詢命令。

使用vim進行多檔案編輯

我們通常有在不同檔案之間進行貼上複製等操作的功能。不熟悉vi的朋友,會開啟多個終端,然後分別開啟檔案,然後進行後續操作,實際上,vim可以直接進行開啟多個檔案實現多檔案的操作和編輯。現在讓我們實現在三個檔案中實現複製貼上。1.vim o3 1.txt 2.txt 3.txt 則會同時豎值顯示三個檔案...

vim多檔案編輯

總想寫點東西,以證明自己的存在給將來。1 screen a 通過ports安裝screen b screen c vi file1.c d ctrl a c 表示同時按住ctrl和a,鬆開後再單擊c,以下同 新建乙個視窗 e vi file2.c f 游標移動到起始點 g ctrl a 進入copy...

Vim多檔案編輯

1.多檔案編輯 使用vim編輯多個檔案進入vim前使用的引數就是多個檔案 命令列模式下,預設進入第乙個檔案 例如 vim 1.txt 2.txt按 enter 進入1.txt檔案進行編輯,如果切換到2.txt,可以使用 n 進入到2.txt 在2.txt檔案中要 切換到1.txt的命令 n 進入vi...