Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

VIM 編輯器搜尋取代完全指南:從基礎到進階正則運算式

編輯:Linux 教學

基礎取代語法

:%s/搜尋目標/取代內容/g
# %  : 全文件範圍
# s  : substitute 取代
# g  : global 全行取代 (預設全文取代可省略)

常用取代模式大全

0. 刪除包含特定字串的行

:g/關鍵字/d

1. 精確單字取代

# 基礎取代
:%s/four/4/g

# 避免部分匹配 (fourty → 4ty)
:%s/\/4/g        # 單字結尾邊界
:%s/\/4/g      # 完整單字匹配

# 互動式確認
:%s/\/4/gc     # 每次取代前提示確認 (y/n/a/q/l)

2. 刪除行尾多餘空白

:%s/\s\+$//
  • \s:空白字元 (空格/Tab)
  • \+:前一項目出現 1 次或以上
  • $:行尾錨點

3. 重複模式匹配

模式匹配說明
a*匹配 a, aa, aaa... 及空字串
ab*匹配 a, ab, abb, abbb...
\(ab\)*匹配 ab, abab, ababab... 及空字串
ab\+匹配 ab, abb, abbb... (至少一個 b)
folders\=匹配 folder 或 folders (可選項)

4. 指定重複次數

模式匹配次數
\{n,m}n 到 m 次 (含 n,m)
\{,4}0 到 4 次
\{3,}3 次以上
\{0,1}0 或 1 次 (等同 \=)
\{0,}0 或更多 (等同 *)
\{1,}1 次以上 (等同 \+)
\{3}恰好 3 次

5. 多選一匹配 (OR 邏輯)

# 基礎 OR
/foo\|bar              # 匹配 foo 或 bar
/one\|two\|three       # 匹配 one 或 two 或 three

# 群組重複
/\(foo\|bar\)\+        # foo, foobar, foofoo, barfoobar...

# 實用範例
/end\(if\|while\|for\) # 匹配 endif, endwhile, endfor

6. 進階實戰範例

# 刪除空行
:g/^$/d

# 刪除註解行
:g/^#/d

# 行首插入字元
:%s/^/>> /

# 行尾追加字元
:%s/$/ <

正則運算式元字元速查

符號含義
^行首
$行尾
.任意單一字元
\<單字開頭
\>單字結尾
\s空白字元
\d數字
\w單字字元 [0-9A-Za-z_]
\(\)分組捕獲
\1, \2反向引用
Copyright © Windows教程網 All Rights Reserved