Depágina de manual de hunspell:
...
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).
...
Intenté algo como: echo "* my_word" | hunspell -a
pero la palabra no está en mi diccionario, ya que al analizar el archivo de muestra nuevamente se muestra como una palabra mal escrita.
¿Cómo funciona esto? ¿Cómo puedo agregar una palabra personalizada?
¿O con Aspell, o cualquier programa "común" que escriba en diccionarios compatibles leídos por Hunspell/Aspell?
Respuesta1
Creo que en lugar de (similar to the I command)
eso debería ser (similar to the A command)
:
A
Accept the word for the rest of this hunspell session.
Revisemos la man
página nuevamente:
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.
Entonces, cuando está en -a mode
, hunspell
la sesión finaliza después de leer y procesar la última línea de entrada. Además,
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.
Al prefijar una línea de una sola palabra con *
(tenga en cuenta que no debe haber espacio entre la palabra y el prefijo) se agregará esa palabra al diccionario del usuario, pero solo para la hunspell
sesión actual, ya que, según la man
página, solo una línea con el prefijo #
generará el diccionario personal. que se guardará (es decir, el archivo en el disco). por lo tanto corriendo
echo "*goosfraba" | hunspell -a
no hace absolutamente nada. hunspell
agregagoosfrabaal diccionario para esta sesión y luego sale (no hay otras líneas para procesar). Debe agregar una segunda línea con el prefijo #
para guardar las palabras agregadas recientemente:
echo -e "*goosfraba\n#" | hunspell -a
Vamos a ver:
::corrección ortográficagoosfraba:
echo -e "goosfraba" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
& goosfraba 1 0: goofball
& = Word
no está en el diccionario, hay uno que casi se pierde:tonto.
::agregar goosfraba al diccionario y luego revisar la ortografía durante la misma hunspell
sesión (dos líneas):
echo -e "*goosfraba\ngoosfraba" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
*
* = Word
está en el diccionario.
::corrección ortográficagoosfrabanuevamente (nueva hunspell
sesión):
echo -e "goosfraba" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
& goosfraba 1 0: goofball
& = Nuevamente, word
no está en el diccionario (no se guardó nada durante la sesión anterior)
::agregando goosfraba al diccionario y guardando durante la misma hunspell
sesión (dos líneas):
echo -e "*goosfraba\n#" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
::corrección ortográficagoosfrabanuevamente (nueva hunspell
sesión):
echo "goosfraba" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
*
* = Word
está en el diccionario.
Respuesta2
Descubrí que la solución más sencilla es usar Aspell y crear un archivo personalizado en la carpeta de inicio, llamado.aspell.lang.pws, con contenidos como:
personal_ws-1.1 en 0
my_word
para el idioma "en", que parece una excelente manera de compartir un "diccionario portátil", por cierto