Tengo mis diccionarios hunspell en C:\hunspell\
. Contiene .dic
y .aff
archivos para tres idiomas: en_GB
, en_US
, y nb_NO
. Las descripciones que encuentro en la web sobre cómo hacer que el hunspell funcione en Emacs me confunden.
¿Cuál es el código mínimo que necesito en mi archivo init para poder usar estos tres diccionarios hunspell en Emacs?
He intentado el siguiente código sugerido por un sitio web:
(add-to-list 'exec-path "C:/hunspell/bin/")
(setq ispell-program-name (locate-file "hunspell"
exec-path exec-suffixes 'file-executable-p))
Pero cuando quiero cambiar el diccionario M-x ispell-change-dictionary
, recibo el siguiente mensaje:
ispell-phaf: no hay entrada coincidente para nil.
microsoft-windows
hunspell
miotis
fuente
fuente
Respuestas:
Configuración de Emacs:
Configuración del diccionario Hunspell:
Ejecutar
hunspell -D
en la ventana DOS que enumerará los directorios hunspell buscando diccionarios. Copie sus diccionarios a ese directorio. Esta es la configuración mínima que necesita.Consulte http://blog.binchen.org/posts/what-s-the-best-spell-check-set-up-in-emacs.html para obtener más detalles técnicos.
fuente
use-package
es(use-package ispell :config (setq ispell-program-name "C:/Program Files (x86)/hunspell-1.3.2-3-w32-bin/bin/hunspell.exe") (setq ispell-local-dictionary "en_US") (setq ispell-local-dictionary-alist '(("en_US" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-d" "en_US") nil utf-8))))
Me encontré con este problema hace un tiempo. Si recuerdo correctamente, la razón por la que recibe ese mensaje de error es porque
hunspell
no puede configurarse en función del entorno actual. Entonces, para solucionarlo, debe configurar las variableshunspell
específicasispell
. El siguiente código debería ser suficiente para configurar hunspell para los diccionarios de inglés:La parte importante es
ispell-hunspell-dictionary-alist
que debe rellenarse con una lista de diccionario adecuada, como la que se proporcionaispell-local-dictionary-alist
.Sin embargo, hay muchos detalles en torno a esta lista. Si desea saber más al respecto, no dude en leer
M-x describe-variable
ispell-local-dictionary-alist
.fuente
ispell-hunspel-dictionary-alist
. En lugar de(require 'flyspell)
considerarlo(with-eval-after-load "ispell" ...)
Instale todos los diccionarios que desee en la ubicación en la que hunspell busca; encuentra esto con
hunspell -D
. Una vez instalado, este comando debería mostrarlos.En el archivo init, agregue solo agregue uno de ellos, por ejemplo, tengo instalado
en_GB
yen_US
diccionarios. Tengo, en mi archivo init, esto:Al abrir Emacs, solo habilítelo
flyspell-mode
. Emacs debería decir que se inicia ispell con el diccionario predeterminado. Esto significa queen_GB
está en acción, para nuestro ejemplo. Ahora, si quieres cambiar, solo hazloM-x ispell-change-dictionary
y dale el nuevo nombre del diccionario Egen_US
. Ahora el otro diccionario debería estar en acción. Esto, nuevamente, será notificado por Emacs diciendo que comenzó ispell pero esta vez con elen_US
diccionario.fuente
Suponiendo que está utilizando una versión reciente de Emacs (24.4 o superior, según recuerdo), todo lo que necesita hacer es asegurarse de estar usando el nombre de diccionario correcto, y Emacs hará el resto automáticamente.
El problema principal es que Windows usa un formato de descripción de idioma diferente, por ejemplo, el inglés británico se llama ENG y el inglés de EE . UU. Es ENU . Esto significa que sus archivos de diccionario deben llamarse ENU.dic y ENU.aff para inglés de EE. UU., Y ENG.dic y ENG.aff para inglés británico.
También puede ser necesario tener un diccionario "predeterminado" o un hunspell puede no ser muy feliz. También puede establecer la variable de entorno DICCIONARIO para forzar un valor predeterminado.
Lamentablemente, no puedo entender cómo debe llamarse su diccionario noruego. Si está utilizando la configuración regional noruega en Windows, debería poder verificar dentro de Emacs evaluando:
Lo que le mostrará la configuración que Emacs está utilizando.
fuente
Esto es solo una suposición, pero tal vez necesite decir qué idioma le gustaría usar como "predeterminado":
El valor predeterminado de
ispell-dictionary
esnil
, por lo que puede ser esta la causa de su problema.fuente