Ich habe meine Hunspell-Wörterbücher bei C:\hunspell\
. Es enthält .dic
und .aff
Dateien für drei Sprachen: en_GB
, en_US
, und nb_NO
. Die Beschreibungen, die ich im Internet darüber finde, wie man Hunspell in Emacs zum Laufen bringt, machen mich verwirrt.
Was ist der Mindestcode, den ich in meiner Init-Datei benötige, um diese drei Hunspell-Wörterbücher in Emacs verwenden zu können?
Ich habe den folgenden von einer Website vorgeschlagenen Code ausprobiert:
(add-to-list 'exec-path "C:/hunspell/bin/")
(setq ispell-program-name (locate-file "hunspell"
exec-path exec-suffixes 'file-executable-p))
Wenn M-x ispell-change-dictionary
ich jedoch das Wörterbuch ändern möchte, wird folgende Meldung angezeigt:
ispell-phaf: Kein passender Eintrag für Null.
microsoft-windows
hunspell
Myotis
quelle
quelle
Antworten:
Emacs-Setup:
Einrichtung des Hunspell-Wörterbuchs:
Führen Sie das
hunspell -D
Dos-Fenster aus, in dem die Verzeichnisse aufgelistet werden, in denen nach Wörterbüchern gesucht wird. Kopieren Sie Ihre Wörterbücher in dieses Verzeichnis. Dies ist das minimale Setup, das Sie benötigen.Weitere technische Details finden Sie unter http://blog.binchen.org/posts/what-s-the-best-spell-check-set-up-in-emacs.html .
quelle
use-package
ist(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))))
Ich bin vor einiger Zeit selbst auf dieses Problem gestoßen. Wenn ich mich richtig erinnere, erhalten Sie diese Fehlermeldung, weil Sie
hunspell
sich nicht basierend auf der aktuellen Umgebung konfigurieren können. Um dies zu beheben, müssen Sie diehunspell
spezifischenispell
Variablen konfigurieren . Der folgende Code sollte ausreichen, um hunspell für englische Wörterbücher einzurichten:Der wichtige Teil ist
ispell-hunspell-dictionary-alist
, dass er mit einer richtigen Wörterbuchliste gefüllt werden muss, wie der inispell-local-dictionary-alist
.Es gibt jedoch einige Details rund um diese Liste. Wenn Sie mehr darüber erfahren möchten, können Sie sich gerne darüber informieren
M-x describe-variable
ispell-local-dictionary-alist
.quelle
ispell-hunspel-dictionary-alist
. Anstelle von(require 'flyspell)
Ihnen könnte in Betracht ziehen(with-eval-after-load "ispell" ...)
Installieren Sie alle gewünschten Wörterbücher an dem Ort, an dem Hunspell sucht. finde das mit
hunspell -D
. Nach der Installation sollte dieser Befehl sie anzeigen.Fügen Sie in der Init-Datei nur eines hinzu. ZB habe ich
en_GB
unden_US
Wörterbücher installiert. Ich habe in meiner Init-Datei Folgendes:Aktivieren Sie beim Öffnen von Emacs einfach
flyspell-mode
. Emacs sollte sagen, dass es mit dem Standardwörterbuch ispell gestartet wird. Dies bedeuteten_GB
für unser Beispiel, dass es in Aktion ist. Wenn Sie jetzt wechseln möchten,M-x ispell-change-dictionary
geben Sie einfach den neuen Wörterbuchnamen ein, zen_US
. Jetzt sollte das andere Wörterbuch in Aktion sein. Dies wird wiederum von Emacs mitgeteilt, dass es ispell gestartet hat, diesmal jedoch mit demen_US
Wörterbuch.quelle
Angenommen, Sie verwenden eine neuere Version von Emacs (24.4 oder höher, wie ich mich erinnere), müssen Sie nur sicherstellen, dass Sie den richtigen Wörterbuchnamen verwenden, und Emacs erledigt den Rest automatisch.
Das Hauptproblem besteht darin, dass Windows ein anderes Sprachbeschreibungsformat verwendet, z. B. Britisches Englisch heißt ENG und US-Englisch ist ENU . Dies bedeutet , dass Ihre Wörterbuch - Dateien sollten aufgerufen werden ENU.dic und ENU.aff für US - Englisch, und ENG.dic und ENG.aff für britisches Englisch.
Es kann auch notwendig sein, ein "Standard" -Wörterbuch zu haben, oder Hunspell ist möglicherweise nicht sehr glücklich. Sie können auch die Umgebungsvariable DICTIONARY festlegen , um einen Standardwert zu erzwingen.
Leider kann ich nicht herausfinden, wie Ihr norwegisches Wörterbuch heißen soll. Wenn Sie das norwegische Gebietsschema in Windows verwenden, sollten Sie in Emacs überprüfen können, indem Sie Folgendes auswerten:
Welches zeigt Ihnen die Einstellung, die Emacs verwendet.
quelle
Dies ist nur eine Vermutung, aber vielleicht müssen Sie angeben, welche Sprache Sie als „Standard“ verwenden möchten:
Der Standardwert von
ispell-dictionary
istnil
, möglicherweise ist dies die Ursache für Ihr Problem.quelle