• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
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

讀者互動

發佈留言 取消回覆

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

Primary Sidebar

搜尋

分類

Android Apple C/C++ Excel Linux OneNote PHP PowerPoint PowerShell Python R Windows Word 免費工具 創客 網站架設 線上工具 資料庫 遊戲 雜七雜八

近期文章

  • iCloud 匯入 Google 聯絡人教學
  • CSS 檔案最小化與壓縮處理教學與範例
  • Python 使用 ITK 讀取、寫入、建立影像教學與範例
  • Python 以 random 模組產生隨機亂數教學與範例
  • iPhone 手機開啟 VoLTE 與 WiFi 通話 VoWiFi 功能教學
  • Python 以 NumPy 的 unique 函數篩選陣列不重複元素教學與範例
  • ITK 計算 3D 二元遮罩影像物件數量與體積
  • SimpleITK 計算 2D 二元遮罩影像物件數量與統計值

推薦網站

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

關注本站

  • 電子郵件
  • Facebook

Copyright © 2020 · Office Guide