Я хотел бы использовать команду ispell-buffer в Emacs. По умолчанию используется английский язык. Есть ли простой способ переключиться на другой словарь (например, на другой язык)?
Как изменить язык в Emacs при использовании ispell?
Ответы (6)
Следующая команда предлагает список установленных словарей для использования:
M-x ispell-change-dictionary
Обычно M-x isp-c-d
также расширяется до вышеуказанного.
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.
В конце файла 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