例如,如果我想用包含反斜杠或正斜杠的字符串进行查找和替换,在Vim中如何实现呢?示例查找和替换为::%s/foo/bar/g如果我想找到所有出现的<dog/>并将其替换为<cat\>,该怎么办
:%s/foo/bar/g
<dog/>
<cat\>
muk1a3rh1#
与在linuxy程序中其他地方转义字符的方式相同,使用反斜杠:
:%s/<dog\/>/<cat\\>
但请注意,您可以选择不同的分隔符:
:%s@<doc/>@<cat\\>@
这可以节省您在大量斜杠模式中输入所有那些耗时、令人困惑的反斜杠。从documentation:除了模式和替换字符串周围的/,您可以使用任何其他单字节字符,但不能使用字母数字字符,\、"或|。如果您要在搜索模式或替换字符串中包含/,这将非常有用。
/
\
"
|
sgtfey8w2#
%s:<dog/>:<cat>
如果/分隔符对于某些模式来说很烦人,您可以替换它们。
vhipe2zx3#
用反斜杠将它们引起来。另外,除了斜杠之外,使用其他分隔符通常也会有所帮助。
:%s#<dog/>#<cat\\>#
或者必须使用斜杠作为替代命令分隔符
:%s/<dog\/>/<cat\\>/
gt0wga4j4#
我在寻找类似的东西,搜索包含/字符的寄存器值(记录宏)。解决方案是使用?标记而不是/进行搜索。
?
uz75evzq5#
语法为:
:%s/<dog\/>/<cat\\>/g
gv8xihay6#
反斜杠斜杠反斜杠星星
/(<- the prompt)\/\*
所以在你输入之后
/\/\*
6条答案
按热度按时间muk1a3rh1#
与在linuxy程序中其他地方转义字符的方式相同,使用反斜杠:
但请注意,您可以选择不同的分隔符:
这可以节省您在大量斜杠模式中输入所有那些耗时、令人困惑的反斜杠。
从documentation:
除了模式和替换字符串周围的
/
,您可以使用任何其他单字节字符,但不能使用字母数字字符,\
、"
或|
。如果您要在搜索模式或替换字符串中包含/
,这将非常有用。sgtfey8w2#
如果/分隔符对于某些模式来说很烦人,您可以替换它们。
vhipe2zx3#
用反斜杠将它们引起来。另外,除了斜杠之外,使用其他分隔符通常也会有所帮助。
或者必须使用斜杠作为替代命令分隔符
gt0wga4j4#
我在寻找类似的东西,搜索包含
/
字符的寄存器值(记录宏)。解决方案是使用?
标记而不是/
进行搜索。uz75evzq5#
语法为:
gv8xihay6#
反斜杠斜杠反斜杠星星
所以在你输入之后