为什么Hunspell想要纠正中文字符“一"

我的Emacs用的是hunspell来做拼写检查的,检查英文没有什么问题,当前文档里面如果有中文的话,一般情况下也没有什么问题,hunspell是不对中文做检查的。

不过我发现奇怪的一点是,一旦当前文档中包含“一”这个字符,hunspell就会标识该字符有问题。我还专门用hunspell的命令行工具试了一下,它确实是会标识“一”这个字符有问题,别的中文字符都不管,英文字符也是照字典检查:

# & 代表错误,后面从 e 开始的字符都是建议纠正的字符,这说明 hunspell 在尝试纠正“一”,这很奇怪
$ hunspell <<< "一"
Hunspell 1.7.0
& 一 15 0: e, s, i, a, n, r, t, o, l, c, d, u, g, m, p

# hunspell 不检测中文字符“二”,正常
$ hunspell <<< "二"
Hunspell 1.7.0

# hunspell 纠正英文 "exampl", 正常
$ hunspell <<< "exampl"
Hunspell 1.7.0
& exampl 4 0: example, exam pl, exam-pl, exempla

# hunspell 认为 "example" 是没有问题的,正常
$ hunspell <<< "example"
Hunspell 1.7.0
*

有小伙伴也遇到类似的问题了么?附Emacs检查截图 Screenshot_2021-04-15_09-43-08

如使用flyspell。可以看一下flyspell-generic-check-word-predicate的文档。给了你第二次机会判定typo是否真的是typo。 。 不建议直接修改predicate,因为flyspell-modeflyspell-prog-mode和第三方插件都可能设置它。

我的插件wucuo基于flyspell,取代了flyspell-modeflyspell-prog-mode,提供了更方便的方法设置predicate。

谢谢建议,直接把“一”保存到字典了,感觉像是hunspell的一个bug,不过也不细究了

1 个赞