gpt4 book ai didi

emacs - Emacs 中 hunspell 的工作设置

转载 作者:行者123 更新时间:2023-12-04 03:23:56 24 4
gpt4 key购买 nike

有人有 hunspell 的工作设置吗?和 Emacs ?简单设置ispell-program-namehunspell不起作用,输出(例如,使用 flyspell 时)如下所示:

-> UTF-8 encoding error. Missing continuation byte in 0. character position: - 9631: word not found

(我的文件通常以 UTF-8 编码)

我见过几种不同的设置,但它们都以一种或另一种方式失败了。如果编码像它应该的那样工作,它通常会在找到正确的字典时遇到问题。

任何有工作解决方案的人?能够在两个词典之间切换会很好(默认应该是瑞典语词典和辅助英语),但是运行任何东西会更好。

最佳答案

如果您收到该 UTF-8 编码错误,则意味着 hunspell进程正在使用指定其他编码的参数运行。例如,当我检查我的进程列表时,我会在 Emacs 启动后看到这个子进程:

/usr/bin/hunspell -a  -B -i iso-8859-1
ispell-get-coding-system函数决定使用哪种编码,它通过检查大 ispell-dictionary-alist 来完成。似乎列出了 Emacs 已知的每种语言的变量。该函数通常会从与您要检查的语言匹配的条目中获取最后一个符号。出于某种原因,我没有费心去弄清楚,这个列表有 iso-8859-1对于英语——而不是,你知道,注意实际缓冲区中的编码。我知道,这似乎没有意义。但我们继续。

您会认为您可以通过为变量 ispell-dictionary-alist 设置您自己的值来覆盖它。并使用 utf-8作为八个参数中的最后一个:

;; I could never get Emacs to pay attention to this
(setq ispell-dictionary-alist
'((nil "[A-Za-z]" "[^A-Za-z]" "[']" t ("-d" "en_US") nil utf-8)))

但是我永远无法让这个设置真正起作用,无论我是否做了 (load-library "ispell")我的第一个 .emacs ,或者我是否在其中之一中做到了:

;; Did not work for me either.
(eval-after-load "ispell" '(progn ...))

无论哪种方式,如果我启动一个新的 Emacs 并输入 *scratch*并输入 ispell-dictionary-alist并按下 Control-J,然后是巨大的原始列表 ispell创建会出现。每次。

所以我决定对这个庞大列表的整个问题进行一次最终运行,并简单地重写 ispell-get-coding-system函数总是返回 utf-8 .当然,下次我打开一个真正在 iso-8859-1 中的文件时,这会咬我。 ,但我从来没有这样做过,对吧?

为了在我的 .emacs 中成功实现这一点文件(好吧, ~/.emacs.d/init.el,但是对于 Stack Overflow 的答案需要大量输入)需要以下代码:

;; It works!  It works!  After two hours of slogging, it works!
(if (file-exists-p "/usr/bin/hunspell")
(progn
(setq ispell-program-name "hunspell")
(eval-after-load "ispell"
'(progn (defun ispell-get-coding-system () 'utf-8)))))

我现在有 hunspell像冠军一样工作!不幸的是,我让它工作的全部原因是希望它的字典比 aspell 的大得多,但我发现它突出显示了一些相同的单词。哦,好吧,我会尝试另一种方法。我基本上想要一个可以加载 /usr/share/dict/american-english-huge 的拼写检查器。 Ubuntu 上可用的字典,但 aspell当我试图扩大它的视野时,它以多种方式死去。也许我会更幸运 hunspell - 我们会看到。

关于emacs - Emacs 中 hunspell 的工作设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3961119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com