代码之家  ›  专栏  ›  技术社区  ›  umeshr

如何在Vim中修剪匹配字符?

  •  0
  • umeshr  · 技术社区  · 7 年前

    我想删掉Vim中匹配的最后五个字符。搜索模式不是直接的词,而是类似于 foo.*bar 这里我想删掉上面匹配的最后五个字符。

    我试过了 :g/foo.*bar/norm $5X 但这会在匹配此模式的行末尾修剪五个字符

    1 回复  |  直到 7 年前
        1
  •  3
  •   romainl    7 年前

    :help :global 不是工作的正确工具。

    使用替换:

    :%s/foo.*bar/\=submatch(0)[:-6]/g
    

    看见 :help sublist :help submatch()