• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

Vim 文字搜尋功能使用教學與範例

介紹 Vim 文字編輯器的各種關鍵字搜尋方法,並提供常用範例。

基本文字搜尋

在 Vim 編輯器中若要搜尋檔案中的關鍵字,可以使用 /(向後搜尋)或 ?(向前搜尋),例如向後搜尋 GNU 這個關鍵字:

/GNU
向後搜尋 GNU
向後搜尋 GNU

向前搜尋 GNU 這個關鍵字:

?GNU
向前搜尋 GNU
向前搜尋 GNU

在使用 / 或 ? 進行搜尋時,如果在檔案中有多個符合搜尋條件的地方,可以使用 n(顯示下一個符合的位置)或 N(顯示上一個符合的位置)來瀏覽所有符合搜尋條件的位置。

正規表示法搜尋

在搜尋的時候也可以使用正規表示法(regular expression),例如使用正規表示法向後搜尋數字(d):

/d
以正規表示法向後搜尋數字
以正規表示法向後搜尋數字

以下是 Vim 中常用的正規表示法語法與範例:

語法 說明 範例
* 出現 0 次以上 ab* 可匹配 a、ab、abb 等
+ 出現 1 次以上 ab+ 可匹配 ab、abb、abbb 等
= 剛好出現 0 次或 1 次 ab= 可匹配 a 或 ab
{n} 出現剛好 n 次 ab{3} 可匹配 abbb
{n,m} 出現 n 次以上、不超過 m 次 ab{2,4} 可匹配 abb、abbb、abbbb
{n,} 出現 n 次以上 ab{2,} 可匹配 abb、abbb、abbbb 等
{,m} 出現不超過 m 次 ab{,3} 可匹配 a、ab、abb、abbb
[...] 匹配中括號中任一字元 [ab] 可匹配 a 或 b
[^...] 匹配任一中括號中以外的字元 [^ab] 可匹配 a 或 b 以外的任意字元
^ 匹配行首 ^ab 可匹配出現在行首的 ab
$ 匹配行尾 ab$ 可匹配出現在行尾的 ab
< 匹配字首 <ab 可匹配 ab 開頭的字
> 匹配字尾 ab> 可匹配 ab 結尾的字

以下是一些中介字元(metacharacter):

語法 說明
s 匹配空白字元(space 與 tab)
S 匹配非空白字元
d 匹配數字(等同 [0-9])
D 匹配非數字(等同 [^0-9])
w 匹配一般字元(等同 [0-9a-zA-Z_])
W 匹配非一般字元(等同 [^0-9a-zA-Z_])
a 匹配英文字母(等同 [a-zA-Z])
A 匹配非英文字母(等同 [^a-zA-Z])
l 匹配小寫字母(等同 [a-z])
L 匹配非小寫字母(等同 [^a-z])
u 匹配大寫字母(等同 [A-Z])
U 匹配非大寫字母(等同 [^A-Z])

搜尋目前單字

如果想要直接搜尋編輯器中游標所在位置上的字(word),可以直接按下 *(向後搜尋)或 #(向前搜尋),這樣 Vim 就會以游標所在的字作為關鍵字進行搜尋,不必用鍵盤輸入文字內容。

使用 * 或 # 進行搜尋時,同樣可以搭配 n 或 N 來瀏覽所有符合搜尋條件的位置。

搜尋複製的文字

如果不想以鍵盤輸入搜尋的文字,也可以先將文字以 v 選取之後,再以 y 複製起來,然後在按下 / 或 ? 進行搜尋時,輸入 Ctrl + r,再輸入 ",這樣就會將剛剛複製的文字貼上去進行搜尋了。

搜尋紀錄

Vim 會自動將過去搜尋過的關鍵字在儲存在歷史記錄中,當我們按下 / 或 ? 進行搜尋時,可以透過上下鍵瀏覽過去輸入的關鍵字,選擇要使用的搜尋關鍵字之後,也可以自行修改內容。

若歷史記錄中太多資料不好瀏覽,可以先輸入關鍵字的開頭幾個字母,再透過上下鍵尋找以該字母開頭的記錄,例如若要尋找過去使用過且由 a 開頭的關鍵字,就可以在按下 / 或 ? 之後,先輸入 a,再透過上下鍵尋找。

大小寫

若想要讓 Vim 在搜尋文字時不區分英文的大小寫(大小寫視為相同),可以設定 ignorecase 這個選項:

:set ignorecase

或是使用簡寫 ic 來設定也可以,作用等同於 ignorecase:

:set ic

若要恢復區分英文大小寫的狀態,可以設定 noignorecase 這個選項:

:set noignorecase

或是使用簡寫 noic 來設定:

:set noic

刪除空白行

若需要將檔案中所有的空白行刪除,可以使用以下指令:

:g/^$/d

這行指令會尋找完全空的行(^$)並將其刪除,如果一行中有包含空白字元(space 或 tab),就會被保留下來。

如果希望將只包含空白字元的行也一起刪除,可以改用:

:g/^s*$/d

參考資料:Linuxize、大家來學VIM

分類:Linux

讀者互動方式

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide