Depágina de manual do 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).
...
Eu tentei algo como: echo "* my_word" | hunspell -a
mas a palavra não está no meu dicionário, pois a análise do arquivo de amostra mostra-a novamente como uma palavra com erro ortográfico
Como isso funciona, como posso adicionar palavras personalizadas?
Ou com o Aspell, ou qualquer programa "comum" que grava em dicionários compatíveis lidos pelo Hunspell/Aspell?
Responder1
Eu acho que em vez (similar to the I command)
disso deveria ser (similar to the A command)
:
A
Accept the word for the rest of this hunspell session.
Vamos verificar a man
página novamente:
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.
Então, quando in -a mode
, hunspell
a sessão termina após ler e processar a última linha de entrada. Além disso,
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.
Prefixar uma única linha de palavra com *
(observe que não deve haver espaço entre a palavra e o prefixo) adicionará essa palavra ao dicionário do usuário, mas apenas para a hunspell
sessão atual, pois, conforme a man
página, apenas uma linha prefixada com #
fará com que o dicionário pessoal a ser salvo (isto é, o arquivo em disco). Daí correr
echo "*goosfraba" | hunspell -a
não faz absolutamente nada. hunspell
adicionagoosfrabapara o dicionário desta sessão e sai (nenhuma outra linha para processar). Você deve adicionar uma segunda linha com o prefixo #
para salvar as palavras adicionadas recentemente:
echo -e "*goosfraba\n#" | hunspell -a
Vamos ver:
:: verificação ortográficagoosfraba:
echo -e "goosfraba" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
& goosfraba 1 0: goofball
& = Word
não está no dicionário, há um quase acidente:bobagem.
::adicionando goosfraba ao dicionário e depois verificando a ortografia durante a mesma hunspell
sessão (duas linhas):
echo -e "*goosfraba\ngoosfraba" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
*
* = Word
está no dicionário.
:: verificação ortográficagoosfrabanovamente (nova hunspell
sessão):
echo -e "goosfraba" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
& goosfraba 1 0: goofball
& = Novamente, word
não está no dicionário (nada foi salvo durante a sessão anterior)
::adicionando goosfraba ao dicionário e salvando na mesma hunspell
sessão (duas linhas):
echo -e "*goosfraba\n#" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
:: verificação ortográficagoosfrabanovamente (nova hunspell
sessão):
echo "goosfraba" | hunspell -a
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2)
*
* = Word
está no dicionário.
Responder2
Descobri que a solução mais fácil é usar o Aspell e criar um arquivo personalizado na pasta inicial, chamado.aspell.lang.pws, com conteúdos como:
personal_ws-1.1 en 0
my_word
para o idioma "en", que parece uma ótima maneira de compartilhar "dicionário portátil", aliás