Vim: 将字符串 a 替换为包含 '&' 符号的字符串 b
Vim: replacing string a with string b containing '&' sign
我有很多行代码包含“a && b”形式的表达式。
现在,我想添加表达式“&& c”,因此以“a && b && c”结尾。其实很简单。
但是,当我这样做时
:%s/b/b && c/gc
它显然用 'bb' 替换了 && 符号。这似乎是一个 vim 功能。
现在我的问题是:有解决办法吗?
我真的需要做这个更换。
最好的,
米丽亚姆
使用反斜杠转义特殊符号:
:%s/b/b \&\& c/gc
在替换的替换部分,&
是一个特殊字符,表示“整个匹配”。它通常用于您对匹配本身没问题而只想向其添加内容的场景:
:%s/foo/&bar/g
会将缓冲区中的每个 foo
变成 foobar
。
在你的例子中,&
代表 b
所以:
:%s/b/b && c/gc
得到你:
a && b bb c
您需要做的就是转义 &
:
:%s/b/b \&\& c/gc
也许,因为我们正在做,所以使用 &
作为它应该使用的东西:
:%s/b/& \&\& c/gc
我有很多行代码包含“a && b”形式的表达式。 现在,我想添加表达式“&& c”,因此以“a && b && c”结尾。其实很简单。
但是,当我这样做时
:%s/b/b && c/gc
它显然用 'bb' 替换了 && 符号。这似乎是一个 vim 功能。
现在我的问题是:有解决办法吗? 我真的需要做这个更换。
最好的, 米丽亚姆
使用反斜杠转义特殊符号:
:%s/b/b \&\& c/gc
在替换的替换部分,&
是一个特殊字符,表示“整个匹配”。它通常用于您对匹配本身没问题而只想向其添加内容的场景:
:%s/foo/&bar/g
会将缓冲区中的每个 foo
变成 foobar
。
在你的例子中,&
代表 b
所以:
:%s/b/b && c/gc
得到你:
a && b bb c
您需要做的就是转义 &
:
:%s/b/b \&\& c/gc
也许,因为我们正在做,所以使用 &
作为它应该使用的东西:
:%s/b/& \&\& c/gc