Как я могу изменить язык в Emacs при использовании ispell?

StackOverflow https://stackoverflow.com/questions/218512

  •  03-07-2019
  •  | 
  •  

Вопрос

Я бы хотел использовать команду ispell-buffer в Emacs. Он использует английский язык по умолчанию. Есть ли простой способ перейти на другой словарь (например, на другой язык)?

Это было полезно?

Решение

Следующая команда предлагает список установленных словарей для использования:

M-x ispell-change-dictionary

Обычно M-x isp-c-d также распространяется на вышеприведенное.

Другие советы

В файле ispell.el вы можете указать некоторые параметры для команд ispell . Это происходит путем добавления раздела в конец вашего файла следующим образом:

;; Local Variables:
;; ispell-check-comments: exclusive
;; ispell-local-dictionary: "american"
;; End:

Обратите внимание, что двойная точка с запятой обозначает начало комментариев в текущем режиме. Вероятно, его следует изменить, чтобы он отражал то, как ваш файл (язык программирования) представляет комментарии, например, // для Java.

В конце файла LaTeX вы можете использовать:

%%% Local Variables:
%%% ispell-local-dictionary: "british"
%%% End:

, который установит словарь, который будет использоваться только для этого файла.

Используйте M-x ispell-change-dictionary и нажмите TAB , чтобы увидеть, какой словарь доступен для вас.

Затем напишите настройку словаря по умолчанию в своем .emacs и добавьте ловушку для автоматического запуска ispell для определенного режима (если хотите).

Например, автоматически запускать ispell в AUCTeX с использованием британского английского (по умолчанию английский словарь - американский английский)

(add-hook 'LaTeX-mode-hook 'flyspell-mode) ;start flyspell-mode
(setq ispell-dictionary "british")    ;set the default dictionary
(add-hook 'LaTeX-mode-hook 'ispell)   ;start ispell

Если вы хотите изменить язык для каждого каталога, вы можете добавить его в файл .dir-locals.el :

(ispell-local-dictionary . "american")

Если у вас нет файла .dir-locals.el , он будет выглядеть следующим образом:

((nil .
   ((ispell-local-dictionary . "american")))
)

См. вики-страницу emacs о переменных каталога для получения дополнительной информации.

Для удобства (f7) я добавил в свой .emacs следующее:

(global-set-key [f7] 'spell-checker)

(require 'ispell)
(require 'flyspell)

(defun spell-checker ()
  "spell checker (on/off) with selectable dictionary"
  (interactive)
  (if flyspell-mode
      (flyspell-mode-off)
    (progn
      (flyspell-mode)
      (ispell-change-dictionary
       (completing-read
        "Use new dictionary (RET for *default*): "
        (and (fboundp 'ispell-valid-dictionary-list)
         (mapcar 'list (ispell-valid-dictionary-list)))
        nil t))
      )))

Кстати: не забудьте установить нужные словари. Например. в Debian / Ubuntu, для немецкого и английского словаря:

sudo apt install aspell-de aspell-en
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top