1

我正在 vim 中执行一个简单的搜索和替换命令,我正在尝试转义<>and/字符,以便可以在我的搜索表达式中使用它们。我意识到有更优雅的方式来查找 HTML 标签,但我真正在寻找的是一个本地化的搜索和替换命令,它将替换<h1>UNKNOWN MISSION</h2><h2>UNKNOWN MISSION</h2>. 这是我尝试转义特殊字符的命令:

:%s/\<h1\>UNKNOWN MISSION\<\/h2\>/\<h2\>UNKNOWN MISSION\<\/h2\>/

模式不匹配。有任何想法吗?

4

3 回答 3

3

:%s/<h1>UNKNOWN MISSION<\/h2>/<h2>UNKNOWN MISSION<\/h2>/g

似乎为我工作。您只需要转义反斜杠。

于 2013-03-25T20:02:17.970 回答
1

您不需要转义<>字符,请尝试以下操作:

:%s/<h1>UNKNOWN MISSION<\/h2>/<h2>UNKNOWN MISSION<\/h2>/
于 2013-03-25T20:01:59.830 回答
1

我会做以下事情……</p>

  1. 将光标放在 with 的第一个实例上UNKNOWN MISSION

    /<h1<CR>
    
  2. 猛拉直到2

    yt2
    
  3. 使用以下方法进行替换:

    :%s+<C-r>"2>+<C-r>"1>
    

    where<C-r>"用于在命令行中插入默认寄存器的内容,并+用作替代分隔符以避免转义斜杠。插入后,整个命令如下所示:

    %s+<h1>UNKNOWN MISSION</h2>+<h1>UNKNOWN MISSION</h1>
    

/g如果需要,请添加标志。

于 2013-03-25T20:39:17.947 回答