emacs 缓冲区中的 Hunspell (ispell) 无法正常工作

emacs 缓冲区中的 Hunspell (ispell) 无法正常工作

在我的 init.el 中我有

(setenv "DICPATH" (concat "$HOME" ".hunspell-dics"))
(setq ispell-program-name "/usr/bin/hunspell")
(setq ispell-really-aspell nil)
(setq ispell-really-hunspell t)
(setq ispell-local-dictionary-alist
    '(("russian"
    "[АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯабвгдеёжзийклмнопрстуфхцчшщьыъэюя]"
    "^[АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯабвгдеёжзийклмнопрстуфхцчшщьыъэюя]"
    "[-]" nil ("-d" "ru_RU") nil utf-8)
    ("english"
    "[A-Za-z]"
    "[^A-Za-z]"
    "[']" nil ("-d" "en_US") nil utf-8))
    )

此配置看起来很正常,但 ispell-buffer 和 flyspell-buffer 的工作方式非常奇怪。例如,在 .tex 文件(latex 模式)中,我在文档环境中有一个序言和正文。如果我命令 ispell 检查缓冲区甚至检查区域,ispell 会让文档环境中的文本不被选中。文档的所有其他部分都经过 ispell 检查,没有任何问题。我仔细检查了 ispell 语言,发现设置正确(俄语)。那么问题是如何让 ispell-buffer/flyspell-buffer 检查从第一个字符串到最后一个字符串的整个文档?

例如

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\begin{document}
some text
\end{document}

带有“某些文本”的区域始终未选中。无论我使用什么语言或其中有什么 latex 命令。所有内容均保持不变。

PShunspell -d "ru_RU"从终端正确检查文档。

答案1

明白了。出于某种原因,hunspell 在通过 emacs 工作时不使用 KOI8-R 中的词典。我用 utf-8 版本替换我的词典,一切恢复正常。

相关内容