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