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

如何在Vim中匹配一系列组合变音符号的范围?

  •  2
  • Mixologic  · 技术社区  · 14 年前

    我有一个文件,有些行包含unicode字符,其中带有音调符号。

    我可以吹走文件中几乎任何其他unicode作为范围匹配,如以下函数:

    但由于某种原因,当音域在变音范围内时,变音适用于音域括号,所以我最后得到了方括号,其中的重音与任何东西都不匹配。

    可以 但是,一次只匹配一个,比如:g/{ctrl-v}u0301/d,但是我不希望经过100次左右的迭代来确保我得到了所有的结果。

    带音调符号的行除外

    1 回复  |  直到 14 年前
        1
  •  2
  •   ZyX    14 年前

    我认为vim中存在一些bug:集合与音调符号不匹配。您可以使用替代方案作为解决方法:

    execute 'g/\('.join(map(range(0x0300, 0x0362), 'printf("\\%%u%04x", v:val)'), '\|').'\)/d'
    

    execute 'g/\('.join(map(range(0x0300, 0x0362), 'nr2char(v:val)'), '\|').'\)/d'