【问题标题】:vim removing xml tagsvim 删除 xml 标签
【发布时间】:2010-09-01 15:14:19
【问题描述】:

我在 vim 中有一个单行,我经常用它来查找和替换。

我现在想用它来删除标签 - 像这样,但我看起来需要转义 / 我不确定我错过了什么。

:%s~<Validator>*</Validator>~~g

【问题讨论】:

    标签: regex vim sed


    【解决方案1】:
    :%s~<Validator>.*</Validator>~~g
    

    成功了

    【讨论】:

      【解决方案2】:

      只是推翻了该主题,无法删除多行的内容。这是我想出的:

      输入:

      <Validator>
          <!-- hello world -->
      </Validator>
      

      Vim 搜索替换:

      %s~<Validator>\_.\{-}<\/Validator>~~g
      

      以下 vim wiki 帮助我找到正确的语法:https://vim.fandom.com/wiki/Search_across_multiple_lines

      【讨论】:

        【解决方案3】:

        使用 awk。

        awk -vRS="</Validator>"  '{gsub(/<Validator>.*/,"") }1' file
        

        以上内容从一个标签到另一个标签删除,即使它们跨越多行。

        【讨论】:

        • 如果标签中提到了sed,我不明白为什么不能使用awk。
        • 你能像我使用 SED 一样在 VIM 中使用 AWK 吗??
        • @imerez:你没有使用 sed;您正在使用 vim 的内置 :s[ubstitute] 命令。
        猜你喜欢
        • 2012-02-21
        • 1970-01-01
        • 1970-01-01
        • 2021-03-16
        • 1970-01-01
        • 1970-01-01
        • 2016-07-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多