Hunspell: Wort über die Befehlszeile zum Wörterbuch hinzufügen

Hunspell: Wort über die Befehlszeile zum Wörterbuch hinzufügen

AusHunspell-Manpage:

...
    When in the -a mode, hunspell will also accept lines  of  single
    words  prefixed  with  any of '*', '&', '@', '+', '-', '~', '#',
    '!', '%', '`', or '^'.  A line starting with '*' tells  hunspell
    to  insert the word into the user's dictionary (similar to the I
    command).
...

Ich habe etwas wie Folgendes versucht: echo "* my_word" | hunspell -aaber das Wort ist nicht in meinem Wörterbuch, da die Analyse der Beispieldatei es erneut als falsch geschriebenes Wort anzeigt

Wie funktioniert das, wie kann ich benutzerdefinierte Wörter hinzufügen?
Oder mit Aspell oder einem „üblichen“ Programm, das in kompatible Wörterbücher schreibt, die von Hunspell/Aspell gelesen werden?

Antwort1

Ich denke, stattdessen (similar to the I command)sollte es heißen (similar to the A command):

A

Accept the word for the rest of this hunspell session. 

Schauen wir uns die manSeite noch einmal an:

The -a option is intended to be used from other programs through a pipe.
In this mode, hunspell prints a one-line version identification message,
and then begins reading lines of input.

Wenn also in ist -a mode, hunspellendet die Sitzung nach dem Lesen und Verarbeiten der letzten Eingabezeile. Außerdem,

When in the -a mode, hunspell will also accept lines of single words prefixed
with any of '*', '&', '@', '+', '-', '~', '#', '!', '%', ''', or '^'. A line
starting with '*' tells hunspell to insert the word into the user's dictionary
(similar to the I command)[........] A line prefixed with '#' will cause the
personal dictionary to be saved.

Wenn Sie einer einzelnen Wortzeile das Präfix voranstellen *(beachten Sie, dass zwischen Wort und Präfix kein Leerzeichen stehen darf), wird dieses Wort dem Wörterbuch des Benutzers hinzugefügt, jedoch nur für die aktuelle hunspellSitzung, da gemäß der manSeite nur eine Zeile mit dem Präfix #das persönliche Wörterbuch (also die Datei auf der Festplatte) speichert. Daher wird beim Ausführen von

echo "*goosfraba" | hunspell -a

tut absolut nichts. hunspellfügt hinzuAbonnierenzum Wörterbuch für diese Sitzung wird dann beendet (keine weiteren Zeilen zu verarbeiten). Sie müssen eine zweite Zeile mit dem Präfix hinzufügen, #um die zuletzt hinzugefügten Wörter zu speichern:

echo -e "*goosfraba\n#" | hunspell -a

Mal sehen:

::RechtschreibprüfungAbonnieren:

echo -e "goosfraba" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
& goosfraba 1 0: goofball

& = Wordsteht nicht im Wörterbuch, es gibt jedoch einen Beinahe-Fehler:Trottel.

::goosfraba zum Wörterbuch hinzufügen und dann während derselben Sitzung eine Rechtschreibprüfung durchführen hunspell(zwei Zeilen):

echo -e "*goosfraba\ngoosfraba" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
*

* = Wordsteht im Wörterbuch.

::RechtschreibprüfungAbonnierennochmal (neue hunspellSitzung):

echo -e "goosfraba" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
& goosfraba 1 0: goofball

& = Auch hier wordist es nicht im Wörterbuch (während der vorherigen Sitzung wurde nichts gespeichert)

::goosfraba zum Wörterbuch hinzufügen und während derselben hunspellSitzung speichern (zwei Zeilen):

echo -e "*goosfraba\n#" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)

::RechtschreibprüfungAbonnierennochmal (neue hunspellSitzung):

echo "goosfraba" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
*

* = Wordsteht im Wörterbuch.

Antwort2

Ich habe herausgefunden, dass die einfachste Lösung darin besteht, Aspell zu verwenden und eine benutzerdefinierte Datei im Home-Ordner mit dem Namen zu erstellen.aspell.lang.pws, mit Inhalten wie:

personal_ws-1.1 en 0
my_word

für die Sprache "en", was übrigens eine großartige Möglichkeit zu sein scheint, ein "tragbares Wörterbuch" zu teilen

verwandte Informationen