vim 搜尋技巧大全

高亮搜尋

平時搜尋時只會高亮標記當前選中的,並不會標記全部選中的文字,可以使用下面的指令開啟高亮搜尋,這樣一搜尋就可以直接查看全部符合的內容了:
    
:set hlsearch
    

關閉高亮搜尋:
    
:set nohlsearch
    

不過搜尋完後所有符合的內容還是會持續的被標記,這時候就可以使用下面的指令關閉高亮搜尋結果:
    
:nohlsearch
    

縮寫:
    
:noh
    

這只是暫時隱藏搜尋(暫時取消高亮搜尋),下次搜尋時還是會高亮所有符合的搜尋結果。

搜尋

搜尋有兩種模式:
是主要向下搜尋,次要向上搜尋
是主要向上搜尋,次要向下搜尋

為了方便介紹,第一種我們簡稱向下搜尋,第二種簡稱向上搜尋,兩種都有主要和次要的快捷鍵,可以馬上換一個方向。

向下搜尋(*)

在一般模式(normal)下直接輸入 / 再加上要搜尋的文字,例如搜尋 abc 則是直接輸入 /abc 並按下 Enter

然後按下「n」會跳到下一個搜尋結果「N」會跳到上一個搜尋結果
直接按下 「#」 就會換成「向上搜尋」,「n」和「N」的用法會反過來,「n」向上「N」向下

向上搜尋(#)

和「向下搜尋」差不多,就只是把 「/」 換成 「?」,然後其他都會反過來
然後按下「N」會跳到下一個搜尋結果「n」會跳到上一個搜尋結果 直接按下 「*」 就會換成「向下搜尋」,「n」和「N」的用法會反過來,「n」向下「N」向上

快速搜尋(選取內容直接搜尋)

我們現在已經知道「*」是「向下搜尋」,「#」是「向上搜尋」,平時可以直接在單字(前後空白)上面直接按下「*」或「#」,直接「向下搜尋」或「向上搜尋」,省去輸入要手動輸入搜尋內容的步驟。不過透過直接按下的方式只會尋找前後也是空白的搜尋結果。如果想要不包含前後空白,可以按下 v 進入選取模式 (visual) 後選取完要搜尋的文字再按下「*」或「#」,這樣就會和平時搜尋的結果一樣了,不會只有前後都有空白的內容才被搜尋出來。

忽略大小寫

不論是使用 「/」 或是 「?」 搜尋,都需要大小寫完全符合才會搜尋出來,也可以使用下面的指令讓搜尋忽略大小寫:
    
:set ignorecase
    

取消忽略大小寫
    
:set noignorecase
    

正則表達式

在 vim 中的搜尋是可以直接使用正則表達式的,這裡只是簡單舉幾個例子:

開頭到結尾都是文字
    
/^\w*$
    

結尾是兩個數字以上的
    
/\d\{2,}$
    

取代

搜尋完要直接替換用法也很簡單:
將所有 old 替換為 new
    
:%s/old/new
    

如果想要逐一確認也可以在最後面加上 /c
    
:%s/old/new/c
    

建議開啟高亮搜尋,方便查看替換結果。

預設也是要求大小寫相符,一樣可以使用 :set ignorecase 忽略大小寫

留言