¿Cómo puedo cambiar el idioma en Emacs cuando uso ispell?
Pregunta
Me gustaría usar el comando ispell-buffer en Emacs. Utiliza el idioma inglés por defecto. ¿Hay una manera fácil de cambiar a otro diccionario (por ejemplo, otro idioma)?
Solución
El siguiente comando propone una lista de diccionarios instalados para usar:
M-x ispell-change-dictionary
Por lo general, M-x isp-c-d
también se expande a lo anterior.
Otros consejos
Desde el archivo ispell.el puede especificar algunas opciones para los comandos ispell
. Esto sucede agregando una sección al final de su archivo como esta:
;; Local Variables:
;; ispell-check-comments: exclusive
;; ispell-local-dictionary: "american"
;; End:
Tenga en cuenta que el punto y coma doble marca el inicio de los comentarios en el modo actual. Probablemente debería cambiarse para reflejar la forma en que su archivo (lenguaje de programación) introduce comentarios, como //
para Java.
Al final de un archivo LaTeX puede usar:
%%% Local Variables:
%%% ispell-local-dictionary: "british"
%%% End:
que configurará el diccionario que se utilizará solo para ese archivo.
Use M-x ispell-change-dictionary
y presione TAB
para ver qué diccionario está disponible para usted.
Luego escriba la configuración del diccionario predeterminado en su .emacs
, y agregue un gancho para iniciar ispell automáticamente para su modo específico (si lo desea).
Por ejemplo, inicie ispell en AUCTeX automáticamente usando inglés británico (por defecto el diccionario de inglés es inglés americano)
(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
Si desea cambiar el idioma por directorio, puede agregarlo a un archivo .dir-locals.el
:
(ispell-local-dictionary . "american")
Si aún no tiene el archivo .dir-locals.el
, se verá así:
((nil .
((ispell-local-dictionary . "american")))
)
Consulte la página wiki de emacs sobre variables de directorio para obtener más información.
Por conveniencia (f7) agregué lo siguiente a mis .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))
)))
Por cierto: no olvides instalar los diccionarios necesarios. P.ej. en debian / ubuntu, para el diccionario alemán e inglés:
sudo apt install aspell-de aspell-en