:.,+30s/\\&/\\&\\&/g
在正则表达式的第一部分中,您不需要转义&符号。它只有在第二部分(替换)中才具有特殊含义。
您要查找的模式是“\&”,并将其替换为“\&\&”。
最简单的替换方式只需使用:
:.,+30s/&/&&/g
尝试不要对所有内容进行转义 - :.,+30s/&/&&/g 对我来说似乎有效。
&
\0
:s
值得注意的是,如果您需要更改&的位置,例如:_&到&_,则只需在替换表达式的替换语句中转义&:
_&
&_
:.,+30s/ &/\& /g ^
&
不是元字符。在模式中,这是正确的(除非&
被转义或启用了very-magic模式),但在替换字符串中,&
表示与\0
相同:整个匹配的子字符串。因为“整个匹配的子字符串”本身就是一个和号,所以这个解决方案有效。还要注意,如果关闭了“magic”选项,则语句“在替换中,&表示整个匹配的模式”在许多命令(包括:s
)中是错误的。 - ZyX