J'ai mes dictionnaires hunspell sur C:\hunspell\
. Il contient .dic
et .aff
fichiers pour trois langues: en_GB
, en_US
, et nb_NO
. Les descriptions que je trouve sur le Web sur la façon de faire fonctionner Hunspell dans Emacs me rendent confus.
Quel est le code minimum dont j'ai besoin dans mon fichier init pour pouvoir utiliser ces trois dictionnaires hunspell dans Emacs?
J'ai essayé le code suivant suggéré par un site Web:
(add-to-list 'exec-path "C:/hunspell/bin/")
(setq ispell-program-name (locate-file "hunspell"
exec-path exec-suffixes 'file-executable-p))
Mais quand M-x ispell-change-dictionary
je veux changer de dictionnaire , je reçois le message suivant:
ispell-phaf: Aucune entrée correspondante pour nil.
microsoft-windows
hunspell
myotis
la source
la source
Réponses:
Configuration d'Emacs:
Configuration du dictionnaire Hunspell:
Exécutez
hunspell -D
dans la fenêtre dos qui listera les répertoires hunspell recherchant des dictionnaires. Copiez vos dictionnaires dans ce répertoire. Il s'agit de la configuration minimale dont vous avez besoin.Voir http://blog.binchen.org/posts/what-s-the-best-spell-check-set-up-in-emacs.html pour plus de détails techniques.
la source
use-package
est(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))))
J'ai rencontré ce problème moi-même il y a quelque temps. Si je me souviens bien, la raison pour laquelle vous obtenez ce message d'erreur est parce qu'il
hunspell
est incapable de se configurer en fonction de l'environnement actuel. Donc, pour y remédier, vous devez configurer les variableshunspell
spécifiquesispell
. Le code suivant devrait être suffisant pour configurer hunspell pour les dictionnaires anglais:La partie importante est la
ispell-hunspell-dictionary-alist
, elle doit être remplie avec une liste de dictionnaires appropriée, telle que celle donnée dansispell-local-dictionary-alist
.Il y a cependant pas mal de détails autour de cette liste. Si vous voulez en savoir plus, n'hésitez pas à lire
M-x describe-variable
ispell-local-dictionary-alist
.la source
ispell-hunspel-dictionary-alist
. Au lieu de(require 'flyspell)
vous pourriez envisager(with-eval-after-load "ispell" ...)
Installez tous les dictionnaires de votre choix à l'emplacement où Hunspell effectue des recherches; trouver cela avec
hunspell -D
. Une fois installée, cette commande devrait les afficher.Dans le fichier init, ajoutez simplement ajouter un d'entre eux Par exemple , j'ai
en_GB
eten_US
dictionnaires installés. J'ai, dans mon fichier init, ceci:À l'ouverture d'Emacs, activez simplement
flyspell-mode
. Emacs devrait dire qu'il est démarré ispell avec le dictionnaire par défaut. Cela signifieen_GB
est en action, pour notre exemple. Maintenant, si vous voulez changer, faites simplementM-x ispell-change-dictionary
et donnez le nouveau nom du dictionnaire par exempleen_US
. Maintenant, l'autre dictionnaire devrait être en action. Encore une fois, cela sera notifié par Emacs disant qu'il a démarré ispell mais cette fois avec leen_US
dictionnaire.la source
En supposant que vous utilisez une version récente d'Emacs (24.4 ou supérieure, si je me souviens bien), tout ce que vous devez faire est de vous assurer que vous utilisez le nom de dictionnaire correct, et Emacs fera le reste automatiquement.
Le problème principal est que Windows utilise un format de description de langue différent, par exemple l'anglais britannique est appelé ENG et l'anglais américain est ENU . Cela signifie que vos fichiers de dictionnaire doivent s'appeler ENU.dic et ENU.aff pour l'anglais américain et ENG.dic et ENG.aff pour l'anglais britannique.
Il peut également être nécessaire d'avoir un dictionnaire "par défaut" ou hunspell peut ne pas être trop content. Vous pouvez également définir la variable d'environnement DICTIONARY pour forcer une valeur par défaut.
Malheureusement, je ne peux pas déterminer comment votre dictionnaire norvégien devrait être appelé. Si vous utilisez les paramètres régionaux norvégiens dans Windows, vous devriez pouvoir vérifier dans Emacs en évaluant:
Ce qui vous montrera le paramètre qu'Emacs utilise.
la source
Ce n'est qu'une supposition, mais vous devez peut-être indiquer la langue que vous souhaitez utiliser comme «par défaut»:
La valeur par défaut
ispell-dictionary
est isnil
, il se peut donc que ce soit la cause de votre problème.la source