Как получить проверку орфографии GNU Emacs для поиска личного словаря пользователя в OSX?

Я перешел с Aquamacs на GNU Emacs. Раньше, когда Aquamacs думал, что слово было написано с ошибкой, я мог щелкнуть правой кнопкой мыши на "Learn Spelling". (У меня также была возможность игнорировать орфографию, чтобы отключить слово только для этого буфера.)

В GNU Emacs я использую flyspell-mode с ispell, с aspell в качестве словаря. Но я замечаю, что слова, которые я ранее добавил в свой словарь (например, мое имя), помечаются как ошибочные.

Как мне заставить GNU Emacs найти и использовать список личных слов, который я уже создал? Могу ли я сделать это без, например, сборки Aquamacs из исходного кода?

1 ответ

Решение

Вот мои заметки по настройке Aspell для OSX и Windows - инструкции по настройке личного словаря пользователя изложены в теме этой ссылки:

/questions/15437734/gde-nahoditsya-chastnyij-slovar-aspell-na-mac/15437747#15437747

Персональный список слов в Aspell - это простой текстовый файл, содержащий содержимое, которое выглядит следующим образом, и вы можете вставить любое слово вручную, включая, помимо прочего, копирование содержимого вашего списка из встроенной программы проверки орфографии OSX. ~/Library/Spelling/LocalDictionary:

personal_ws-1.1 en 79 
lawlist
realleges
parte

И по моему .emacsЯ использую (скорректируйте свой собственный путь соответственно):

(require 'ispell)
(require 'flyspell)
(setq-default ispell-program-name "/Users/HOME/.0.data/.0.emacs/elpa/bin/aspell")
(setq flyspell-default-dictionary "english")
(setq ispell-dictionary "english")

Эту функцию я использую для переключения между испанским и английским:

(defun spell (choice)
   "Switch between language dictionaries."
   (interactive "cChoose:  (1) English | (2) Español")
    (cond ((eq choice ?1)
           (setq flyspell-default-dictionary "english")
           (setq ispell-dictionary "english")
           (setq ispell-personal-dictionary "/Users/HOME/.0.data/.0.emacs/.aspell.en.pws")
           (ispell-kill-ispell))
          ((eq choice ?2)
           (setq flyspell-default-dictionary "spanish")
           (setq ispell-dictionary "spanish")
           (setq ispell-personal-dictionary "/Users/HOME/.0.data/.0.emacs/.aspell.es.pws")
           (ispell-kill-ispell))
          (t (message "No changes have been made."))) )

Для Windows я использую:

(setq-default ispell-program-name "c:/Program Files/Aspell/bin/aspell.exe")
Другие вопросы по тегам