vim查詢和替換詳解

2022-04-22 08:51:04 字數 1786 閱讀 9287

1、vim 單檔案中查詢方法

正常模式下使用 / 或 ? 命令執行向後搜尋或向前搜尋

:set ic 忽略大小寫命令,ic 為 ignore case 縮寫

:set is 邊輸入邊顯示匹配結果,is 是 incsearch 命令的縮寫

:set hls 高亮顯示匹配結果,hls 為 highlight search 縮寫

可將上述設定放入.vimrc 檔案中,設為預設搜尋設定

:set noic nois nohls 將取消上述設定

:noh 暫時取消高亮顯示,不會影響下次高亮顯示匹配結果

2、vim 多檔案查詢方法

正常模式下使用 :vim 或 :vimgrep 命令執行多檔案搜尋

搜尋的時候涉及到選取檔案問題,這裡主要用到 * 作為萬用字元

** 表示資料夾及子資料夾下的所有檔案

:vim/love/* 當前資料夾下的所有檔案

:vim/love/** 當前資料夾及子目錄下的所有檔案

:vim/love/**/*.php 當前資料夾及子目錄下的所有 php 檔案

:vim/love/*.php aa/**/*.php 當前資料夾下的 php 檔案和 aa 目錄及子目錄下的 php 檔案

使用 ** 和 * 可任意組合出想要搜尋的檔案

:cw 檢視搜尋結果

:ccl 關閉搜尋結果

:cn 查詢下乙個

:cp 查詢上乙個

3、vim 單檔案替換方法

單檔案中使用 :s 命令進行替換操作

替換操作會涉及幾個常用的標記

% 所有行 g 單行內所有匹配項 i 忽略大小寫 c 確認是否替換

:s/old/new 將游標所在行第乙個 old 替換為 new

:s/old/new/g 將游標所在行所有 old 替換為 new

:%s/old/new/gc 全文執行替換,詢問是否替換

:3,10s/old/new/gic 將第3行到第10行內容替換,忽略大小寫,且每個詢問是否替換

g i c 可自由組合

4、vim 多問件替換

多檔案替換使用 :args 和 :argdo 命令,這兩個命令結合可以對多檔案執行相同操作,不僅是替換

:args *.php 將當前資料夾下的 php 檔案加入引數列表。加入檔案操作也可使用 ** 選擇資料夾和子資料夾,和上述2 多檔案查詢用法一樣

:argdo %s/old/new/gc | update 執行替換操作,除使用:argdo 和 | update 外,其它替換操作和 3 中單檔案替換用法是一樣的

args 命令為選取檔案到列表,argdo 命令為對列表中的檔案執行批處理操作

:args 檢視引數列表

:argd * 清空引數列表

:arga xx 新增 xx 檔案到引數列表,和 args 新增一樣,可用 ** 選擇多資料夾和檔案,參見上述 2 方法

注意:在執行 argdo 操作的時候,要先儲存當前檔案,因為批處理操作會跳到其它檔案。

替換前要備份原先檔案,update 必須加上,系統會自動儲存替換後的檔案,否則替換會被中斷。

其它:執行 args 新增檔案操作會將遍歷的檔案同樣新增到緩衝區列表。

:ls 列出當前緩衝區列表檔案

:bd 3 將緩衝區3號文件刪除到非緩衝區列表

:ls! 列出非緩衝區列表檔案

:bw 3 可將緩衝區或非緩衝區列表檔案徹底清除

:argdo bw 可對引數列表中的所有檔案執行清除緩衝區操作

vim查詢和替換詳解

1 vim 單檔案中查詢方法 正常模式下使用 或 命令執行向後搜尋或向前搜尋 set ic 忽略大小寫命令,ic 為 ignore case 縮寫 set is 邊輸入邊顯示匹配結果,is 是 incsearch 命令的縮寫 set hls 高亮顯示匹配結果,hls 為 highlight sear...

VIM的查詢和替換

vi vim 中可以使用 s 命令來替換字串。該命令有很多種不同細節使用方法,可以實現複雜的功能。s vivian sky 替換當前行第乙個 vivian 為 sky s vivian sky g 替換當前行所有 vivian 為 sky n,s vivian sky 替換第 n 行開始到最後一行中...

vim 替換詳解

range s pattern string c,e,g,i 5 1 range指的是範圍,1,7 指從第一行至第七行,1,指從第一行至最後一行,也就是整篇文章,也可以 代表。還記得嗎?是目前編輯的文章,是前一次編輯的文章。pattern就是要被替換掉的字串,可以用 regexp 來表示。strin...