:[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