linux下vim多檔案尋找與替換教程

來源:互聯網
上載者:User

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

vim 多檔案尋找

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

:vim[grep][!] /{pattern}/[g][j] {file} ...
:vim[grep][!] {pattern} {file} ...

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

以下命令查看匹配結果:

:cn[ext] 下一個結果
:cp[revious] 上一個結果
: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,就不會寫入,但相應的替換也會被中斷)。

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

好啦,希望這篇文章對大家有用~

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.