Как изменить частный словарь ispell

Я хотел бы сделать проверку орфографии для нескольких файлов в большом проекте / репозитории и использовать другой частный словарь, чем мой собственный. Так что я вместо этого использую словарь проекта и позже могу загрузить его для использования другими пользователями.

3 ответа

Ответ Криса правильный. Вот лишь пример того, что я использую для переключения между aspell личные словари, а также aspell языки. Я использую оба flyspell а также ispell, Пути к личным словарям должны быть скорректированы в соответствии с пользовательскими спецификациями.

(defface ispell-alpha-num-choice-face
  '((t (:background "black" :foreground "red")))
  "Face for `ispell-alpha-num-choice-face`."
  :group 'ispell)

(defface ispell-text-choice-face
  '((t (:background "black" :foreground "forestgreen")))
  "Face for `ispell-text-choice-face`."
  :group 'ispell)

(defun my-ispell-change-dictionaries ()
"Switch between language dictionaries."
(interactive)
  (let ((choice (read-char-exclusive (concat
          "["
          (propertize "E" 'face 'ispell-alpha-num-choice-face)
          "]"
          (propertize "nglish" 'face 'ispell-text-choice-face)
          " | ["
          (propertize "S" 'face 'ispell-alpha-num-choice-face)
          "]"
          (propertize "panish" 'face 'ispell-text-choice-face)))))
    (cond
      ((eq choice ?E)
        (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)
        (message "English"))
      ((eq choice ?S)
        (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)
        (message "Español"))
      (t (message "No changes have been made."))) ))

Из Emacs, переменная ispell-personal-dictionary может быть использован для выбора вашего личного файла словаря:

Имя файла вашего личного орфографического словаря или ноль. Если nil, используется личный словарь по умолчанию ("~/.ispell_DICTNAME" для ispell или "~/.aspell.LANG.pws" для aspell), где DICTNAME - это имя вашего словаря по умолчанию, а LANG - двухбуквенный код языка,

На современных системах Emacs ispell- функции обычно используют GNUaspell,

бесплатную и открытую программу проверки правописания, разработанную, чтобы в конечном итоге заменить Ispell

Из вашего вопроса не ясно, все ли будут проверять орфографию через Emacs. К счастью, aspell поддерживает параметр командной строки, который работает аналогично:

--personal=<file>, -p <file>
    Personal word list file name.

У меня есть это в моем файле init.el, который отлично работает для меня (находится на http://www.emacswiki.org/emacs/FlySpell)

(setq ispell-program-name "aspell")
(setq ispell-list-command "list")


(let ((langs '("spanish" "british" "french")))
  (setq lang-ring (make-ring (length langs)))
  (dolist (elem langs) (ring-insert lang-ring elem)))
(defun cycle-ispell-languages ()
  (interactive)
  (let ((lang (ring-ref lang-ring -1)))
    (ring-insert lang-ring lang)
    (ispell-change-dictionary lang)))

Я установил комбинацию клавиш для переключения из одного словаря в другой

(global-set-key [M-f6] 'cycle-ispell-languages)
Другие вопросы по тегам