【发布时间】:2011-04-02 23:31:04
【问题描述】:
我有一个文件,其中一些行包含带有变音符号的 unicode 字符。 我想删除文件中包含任何 unicode 变音符号的所有行(unicode 0x0300 - unicode 0x0362)。
我可以清除文件中几乎所有其他 unicode,因为范围匹配,如下面的函数:
:g/[{ctrl-v}u0129-{ctrl-v}u0229]/d
但由于某种原因,当范围在变音范围内时,变音符号适用于范围括号,所以我最终得到带有不匹配任何重音的方括号。
我可以但是一次匹配一个,例如:g/{ctrl-v}u0301/d,但我宁愿不经过 100 次左右的迭代来确保我得到它们全部。
另外,反向搜索也让我失望了。 :g/[^ -~]/d 将删除包含 {space} 到波浪号范围之外的字符的每一行,除了带有变音符号的行。
谢谢
【问题讨论】:
-
看起来像一个错误:
/<C-v>u0301能够找到变音符号,但/[\u0301]不能。 -
已将其发布到 vim-dev 邮件列表。