В моем 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 (режим латекса) у меня есть преамбула и основной текст в среде документа. Если я запускаю команду ispell для проверки буфера или даже для проверки области, ispell оставляет текст в среде документа неконтролируемым. Все остальные части документа проверяются без вопросов. Я дважды проверил язык ispell, и он был установлен правильно (русский). Итак, вопрос в том, как заставить ispell-buffer/flyspell-buffer проверять весь документ от первой до последней строки?

Например

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

Область с «каким-то текстом» всегда оставалась непроверенной. Неважно, какой язык я использую или какие латексные команды внутри него. Все остается нетронутым.

PS hunspell -d "ru_RU" из терминала правильно проверяет документ.

1 ответ1

0

Понял. По некоторым причинам hunspell, когда работает через emacs, не использует словари в KOI8-R. Я заменяю свои словари версиями utf-8 и все становится нормально.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .