如何在VIM查找/搜索中逃避反斜杠和正斜杠?

时间:2010-03-17 19:14:52

标签: regex vim

例如,如果我想查找并替换包含向后或正斜杠的字符串,那么在vim中如何实现?谢谢!

实例 找到&替换为::%s/foo/bar/g

如果我想查找所有<dog/>并将其替换为<cat\>

,该怎么办?

6 个答案:

答案 0 :(得分:127)

使用反斜杠:

,你可以在linuxy程序中的其他任何地方转义字符
:%s/<dog\/>/<cat\\>

但请注意,您可以选择不同的分隔符:

:%s@<doc/>@<cat\\>@

这样可以省去所有那些耗时的,混乱的反斜杠模式中的大量斜杠。

来自documentation

  

而不是围绕模式和替换字符串的/   可以使用任何其他单字节字符,但不能使用字母数字字符,   \"|。如果要在搜索中包含/,这非常有用   模式或替换字符串。

答案 1 :(得分:21)

%s:<dog/>:<cat>

如果/ delimiters对某些模式感到烦恼,你可以替换它们。

答案 2 :(得分:8)

用反斜杠引用它们。此外,除了斜杠之外,使用另一个分隔符通常也有帮助。

 :%s#<dog/>#<cat\\>#

或者如果必须使用斜杠作为替换命令分隔符

 :%s/<dog\/>/<cat\\>/

答案 3 :(得分:3)

语法为:

:%s/<dog\/>/<cat\\>/g

答案 4 :(得分:1)

我正在寻找类似的东西,搜索包含/字符的寄存器值(以记录宏)。解决方案是使用?令牌而不是/进行搜索。

答案 5 :(得分:-1)

反斜杠斜杠反斜杠明星

/(<- the prompt)\/\*

所以输入后就像

/\/\*