我的文档包含<hr/>
个标记组:
<p>stuff</p>
<hr/>
<hr/>
<hr/>
<p>stuff</p>
感谢提示如何在Vim中替换此标记的单个实例。
答案 0 :(得分:3)
你可以让<hr/>\n
成为一个群组并搜索它的倍数,然后替换
只有一个。另请注意,在Vim中您可以使用不同的
分隔符,如果你使用斜杠,它会特别有用
例如。如果你,你不需要关闭替代命令
没有旗帜。
:%s#\(<hr/>\n\)\+#\1
使用\v
启用非常神奇的功能,可以避免更多的转义。然而
<
和>
将被视为特殊字边界。所以你有了
反而逃避他们。
:%s#\v(\<hr/\>\n)+#\1
当然,如果文件中唯一重复的行是那些标记, 这也足够了:
:%!uniq
答案 1 :(得分:1)
您可以在vim
:
:%s/<hr\/>\n\(<hr\/>\n\)\+/\1/
<hr\/>\n\(<hr\/>\n\)\+
会找到包含<hr/>
的2行或更多行,我们会使用\1
<hr/>\n
替换它。