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

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


person Bruno Ranschaert    schedule 20.10.2008    source источник
comment
я бы посоветовал всем, кто отвечает на этот вопрос, также сообщить, как добавить, например. Французский в набор словарей ispell, если он не попал туда при установке. Считаю все приведенные здесь ответы неполными.   -  person Albert van der Horst    schedule 07.08.2020


Ответы (6)


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

M-x ispell-change-dictionary

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

person stephanea    schedule 20.10.2008
comment
Это устанавливает словарь только для текущего сеанса. Как я могу установить его по умолчанию для emacs? - person dknight; 22.12.2013
comment
После завершения ispell-change-dictionary вы можете проверить, какие строки допустимы для переменной ispell-dictionary. Выберите нужный и настройте ispell-dictionary (т. е. M-x customize-option ispell-dictionary, а затем введите нужный словарь в соответствующее поле). - person Tobias; 23.12.2013

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

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

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

person Pierre    schedule 20.10.2008

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

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

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

person boclodoa    schedule 23.10.2012

Используйте 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
person oracleyue    schedule 20.11.2014

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

(ispell-local-dictionary . "american")

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

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

Дополнительную информацию см. на вики-странице emacs о переменных каталога.

person spookylukey    schedule 15.06.2015

Для удобства (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
person return42    schedule 14.08.2018