You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Emacs的flyspell/ispell支持Unicode单引号U+2019的拼写检查?

如何让Emacs flyspell/ispell识别带Unicode单引号(U+2019)的单词?

问题背景

日常写作中我越来越多地使用Unicode字符,比如用“我’m”而非“I'm”,这样无需依赖输出转换就能获得美观的排版效果,且已配置好键盘可轻松输入这类撇号和引号。但这导致在Emacs中使用flyspell/ispell进行拼写检查时出现问题:能识别“isn't”,却无法识别“isn’t”。

想请教如何解决这个问题,让使用Unicode标准6.2节推荐的U+2019单引号的单词能被正常识别。必要时我可以编写Elisp代码,但不知从何入手。

已尝试的临时方案

深入研究ispell.el后,发现关键在于ispell-dictionary-alist的第3个元素(OTHERCHARS)。加载ispell后执行以下代码:

(nth 3 (assoc "english" ispell-dictionary-alist))

得到的结果是"[']",即仅匹配ASCII打字机单引号的正则表达式。为了同时支持Unicode单引号,我在.emacs中添加了以下代码:

(ispell-change-dictionary "english")
(setf (nth 3 (assoc "english" ispell-dictionary-alist)) "['’]")

这个方法简单有效,但略显粗糙。若有人知道更规范的修改字典OTHERCHARS字段的方法,烦请告知。

内容的提问来源于stack exchange,提问作者njlarsson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 10:15:01