:[range]s/pattern/replacement/flags
這里各部分的含義是:
:[range]
:可選的行范圍,用于指定在哪些行之間進行替換。如果省略,則默認為當前行。例如,1,10
?表示在第1行到第10行之間替換,%
?表示在整個文件中替換,.
?表示從當前行開始,$
?表示到文件末尾。s
:替換命令的開頭,表示 substitute(替換)。pattern
:要查找的字符串或正則表達式模式。replacement
:用于替換?pattern
?的新字符串。flags
:可選標志,用于控制替換的行為,比如:g
:global,全局替換,即在每一行中替換所有匹配項,而非僅替換第一個。c
:confirm,確認每個替換前要求用戶確認。i
:ignorecase,忽略大小寫進行匹配。
示例
-
替換當前行的第一個"hello"為"hi":
1:s/hello/hi/
-
替換當前行所有"hello"為"hi":
1:s/hello/hi/g
-
替換從當前行到文件末尾的所有"world"為"earth":
1:.,$s/world/earth/g
-
在整個文件中替換"example"為"test",并在每次替換前要求確認:
1:%s/example/test/c
-
忽略大小寫替換"EXAMPLE"為"Sample":
1:%s/EXAMPLE/Sample/gi