gpt4 book ai didi

macos - 在 MacOS 上,hunspell 在 Library/Spelling/中找不到现有的 .aff 和 .dic 文件

转载 作者:行者123 更新时间:2023-12-04 13:41:32 43 4
gpt4 key购买 nike

我已经用 brew 命令下载了 hunspell,并想在 Emacs 中使用它,但是 hunspell 似乎没有找到我的 *.aff*.dic ~/Library/Spelling 中的文件,即使他们在那里。

使用命令行命令 hunspell -D ,结果是:

SEARCH PATH:
.::/usr/share/hunspell:/usr/share/myspell:/usr/share/myspell/dicts:/Library/Spelling:/Users/macbook/.openoffice.org/3/user/wordbook:/Users/macbook/.openoffice.org2/user/wordbook:/Users/macbook/.openoffice.org2.0/user/wordbook:/Users/macbook/Library/Spelling:/opt/openoffice.org/basis3.0/share/dict/ooo:/usr/lib/openoffice.org/basis3.0/share/dict/ooo:/opt/openoffice.org2.4/share/dict/ooo:/usr/lib/openoffice.org2.4/share/dict/ooo:/opt/openoffice.org2.3/share/dict/ooo:/usr/lib/openoffice.org2.3/share/dict/ooo:/opt/openoffice.org2.2/share/dict/ooo:/usr/lib/openoffice.org2.2/share/dict/ooo:/opt/openoffice.org2.1/share/dict/ooo:/usr/lib/openoffice.org2.1/share/dict/ooo:/opt/openoffice.org2.0/share/dict/ooo:/usr/lib/openoffice.org2.0/share/dict/ooo
AVAILABLE DICTIONARIES (path is not mandatory for -d option):
/Users/macbook/Library/Spelling/cs_CZ

在这里, cs_CZ 是存储我个人拼写的文件的名称。文件夹中还有其他文件,包括 cs_CZ.affcs_CZ.dic ,以及 en_GB ,但 hunspell 只是忽略了这些。

在 Emacs 中,我尝试过:

(setenv "DICPATH"
(concat (getenv "HOME") "/Library/Spelling"))
(when (executable-find "hunspell")
(setq-default ispell-program-name "hunspell")
(setq ispell-really-hunspell t))

使用推荐的输入“czech”运行 ispell-change-dictinary 后,ispell-word 给了我:

Starting new Ispell process hunspell with czech dictionary... ispell-init-process: Can't open affix or dictionary files for dictionary named "czech".



...和飞行拼写模式:

Error enabling Flyspell mode: (Can't open affix or dictionary files for dictionary named "czech".)



谢谢你。

最佳答案

Emacs 中的拼写检查器在两个字典中查找拼写:标准字典和您的个人字典。标准字典由变量 ispell-local-dictionary 指定或者,如果是 nil , 由变量 ispell-dictionary .正如我在您的输出中看到的,Hunspell 只有 cs_CZ ,但不是 czech字典:

AVAILABLE DICTIONARIES (path is not mandatory for -d option):
/Users/macbook/Library/Spelling/cs_CZ
顺便说一句,Hunspell 1.7.0 被破坏了。更多信息请参见: https://github.com/hunspell/hunspell/issues/608 .您可以比较之间的输出
hunspell -D
hunspell -D /dev/null
看到差异。
首先,设置您已安装的所需字典名称:
;; Default dictionary to use
(setq ispell-local-dictionary "czech")
要查看已找到和已解析的字典列表,请使用 C-h v ispell-hunspell-dict-paths-alist .
另外,我想建议将您喜欢的词典添加到 ispell-local-dictionary-alist .此变量用于指定字典列表及其相关参数。请注意,您必须在 ispell-dictionary 中使用相同的字典名称 a .这样的事情应该工作:
;; Here ("-d" "cs_CZ") id dictionary file name.
;; You could use '("-d" "file1,file2")' to check with multiple dictionaries.
(add-to-list
'ispell-local-dictionary-alist
'(("czech" "[[:alpha:]]" "[^[:alpha]]" "[0-9']" t
("-d" "cs_CZ") nil utf-8)))
注意,Homebrew 本身没有为 Hunspell 提供字典,但你可以下载
来自其他来源的兼容词典,例如 https://extensions.libreoffice.org/en/extensions/show/czech-dictionaries .有关说明,请参见例如: https://passingcuriosity.com/2017/emacs-hunspell-and-dictionaries .
最后,我强烈建议设置 DICTIONARY macOS 上的环境变量。如果没有这个变量,你会在 macOS 上看到这样的东西:

Can't open affix or dictionary files for dictionary named "XXX"


我设法在 macOS 上重现了这个问题。但是在 Linux 上,使用相同的配置和 Emacs 版本,一切正常。设置字典文件名使用 setenv定义如下:
(when (string-equal system-type "darwin") ; Only for macOs
;; Dictionary file name
(setenv "DICTIONARY" "cs_CZ"))
该环境变量由 Hunspell 使用。更多请见 man 1 hunspell .

关于macos - 在 MacOS 上,hunspell 在 Library/Spelling/中找不到现有的 .aff 和 .dic 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56429761/

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