LINUX.ORG.RU

Персональный словарь hunspell в emacs

 ,


0

1

Настроил hunspell на работу с рус. язом. Проверяет - все ок. Одно не понятно. После проверки есть возможность добавлять неизвестные слова в персональный словарь, что я и делаю. Но только этот словарь почему то не используется при проверках других документов/буферов и т.п. Даже если этот же документы закрыть, открыть заново и провести проверку, все слова, которые уже были добавлены в персональный словарь, будут подсвечиваться как неправильные. Так как заставить hunspell использовать персональный словарь помимо основного?

Сам словарь существует, права на него есть, и там даже куча дублей из-за того, что добавляю одни и те же слова из разных документов. Словарь лежит по дефолту в хомяке.

У меня hunspell не стоит. Сходи в man и посмотри, где происходит поиск дополнительных словарей, по какому пути? Мне кажется, что он ищет словарь где-то в другом месте. В текущем буфере работает с локальными добавлениями, а новый буфер открываешь, то не видит файла уже.

Zubok ★★★★★ ()
Ответ на: комментарий от Zubok

Персональный словарь ищется по $HOME/.hunspell*, где * - язык. У меня это .hunspell_ru_RU. Он же распознается, когда я документ повторно проверяю, если не убивать буфер. Если я занес слово из документа в текущем буфере и снова проверил документ, слово уже не загорится, т.е. персональный словарь читается.

brittx ()
Ответ на: комментарий от anonymous

Судя по ману, туда добавляются только кастомные пути до словаря. Но я попробовал указать

(setq ispell-personal-dictionary "/home/bitr/.hunspell_ru_RU")

и перезапустил emacs. Ноль эмоций. Ошибки нет, но при проверке не читает его…

brittx ()

УМВР. Так же в хомяке свой словарь. Читается в любых документах. В конфиге emacs путь не прописан.

Попробуй напрямую hunspell проверить какой-нибудь документ, указав путь до персонального словаря.

Yorween ()

попробуйте такой подход

;; abbr
;; @see http://homepages.inf.ed.ac.uk/s0243221/emacs/

;; ===== Automatically load abbreviations table =====

;; Note that emacs chooses, by default, the filename
;; "~/.abbrev_defs", so don't try to be too clever
;; by changing its name

(setq-default abbrev-mode t)
(when (file-exists-p "~/.abbrev_defs")
  (read-abbrev-file "~/.abbrev_defs")
  )
(setq save-abbrevs t)

(add-hook
 'minibuffer-setup-hook
 (lambda () (setq abbrev-mode nil)))

;; abbr ends here

  • файлы опечаток должны встречаться в поиске
;; example of ~/.abbrev_defs (fragment)

(define-abbrev-table 'global-abbrev-table
  '(
    ("Heder" "Header" nil 0)
    ("Palying" "Playing" nil 0)
 
    ("windoes" "windows" nil 0)
    ("witha" "with a" nil 0)
    ("withe" "with" nil 0)
    ("withthe" "with the" nil 0)
    ("wiull" "will" nil 0)
    ("wnat" "want" nil 0)
    ("wnated" "wanted" nil 0)
    ("wnats" "wants" nil 0)
    ("woh" "who" nil 0)
    ("wohle" "whole" nil 0)
    ("wokr" "work" nil 0)
    ("woudl" "would" nil 0)
    ("woudln" "wouldn" nil 0)
    ("wouldbe" "would be" nil 0)
    ("wouldnt" "wouldn't" nil 0)
    ("wriet" "write" nil 0)
    ("writting" "writing" nil 0)
    ("wrod" "word" nil 0)
    ("wroet" "wrote" nil 0)
    ("wroking" "working" nil 0)
    ("wtih" "with" nil 0)
    ("wuould" "would" nil 0)
    ("wya" "way" nil 0)
    ("yera" "year" nil 0)
    ("yeras" "years" nil 0)
    ("yersa" "years" nil 0)
    ("yoiu" "you" nil 0)
    ("youare" "you are" nil 0)
    ("youd" "you'd" nil 0)
    ("youre" "you're" nil 0)
    ("youve" "you've" nil 0)
    ("ytou" "you" nil 0)
    ("yuo" "you" nil 0)
    ("yuor" "your" nil 0)

    ("дял" "для" nil 1)
    ("повзоляет" "позволяет" nil 0)
    ("поевдение" "поведение" nil 0)
    ("просиходит" "происходит" nil 0)
    ("списко" "список" nil 0)
   ))
anonymous ()
Ответ на: комментарий от Yorween

Какие-то кракозябры вылезают в местах, где русские слова, если проверять через

hunspell -d ru_RU -p ~/.hunspell_ru_RU test.txt

Если убрать опцию с персональным словарем, все ок! Кодировка utf8 как и у стандартных словарей ханспела. В чем может быть причина?

brittx ()