我正在vim中进行简单的搜索和替换命令,并且我试图逃避<>
和/
字符,以便我可以在搜索表达式中使用它们。我发现有更优雅的方式来查找HTML标记,但我真正需要的是一个本地化的搜索和替换命令,它将<h1>UNKNOWN MISSION</h2>
替换为<h2>UNKNOWN MISSION</h2>
。这是我的命令,我试图逃避特殊字符:
:%s/\<h1\>UNKNOWN MISSION\<\/h2\>/\<h2\>UNKNOWN MISSION\<\/h2\>/
模式不匹配。有任何想法吗?
答案 0 :(得分:3)
:%s/<h1>UNKNOWN MISSION<\/h2>/<h2>UNKNOWN MISSION<\/h2>/g
似乎对我有用。你只需要逃避反斜杠。
答案 1 :(得分:1)
您无需转义<>
个字符,请尝试以下操作:
:%s/<h1>UNKNOWN MISSION<\/h2>/<h2>UNKNOWN MISSION<\/h2>/
答案 2 :(得分:1)
我会做以下事情......
将光标放在UNKNOWN MISSION
的第一个实例上:
/<h1<CR>
在2
之前使用:
yt2
替换为:
:%s+<C-r>"2>+<C-r>"1>
其中<C-r>"
用于在命令行中插入默认寄存器的内容,+
用作替代分隔符,以避免转义斜杠。插入后,整个命令如下所示:
%s+<h1>UNKNOWN MISSION</h2>+<h1>UNKNOWN MISSION</h1>
如果需要,请添加/g
标记。