hunspell:从命令行将单词添加到字典中

hunspell:从命令行将单词添加到字典中

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).
...

我尝试了类似的操作:echo "* my_word" | hunspell -a但该单词不在我的字典中,因为解析示例文件再次将其显示为拼写错误的单词

这是如何工作的,如何添加自定义单词?
或者使用 Aspell,或者任何写入 Hunspell/Aspell 读取的兼容字典的“通用”程序?

答案1

我认为应该(similar to the I command)(similar to the A command)

A

Accept the word for the rest of this hunspell session. 

我们man再检查一下页面:

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.

因此,当 in 时-a modehunspell会话在读取并处理最后一行输入后结束。此外,

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.

在单个单词行上添加前缀*(注意单词和前缀之间不应有空格)会将该单词添加到用户的词典中,但仅限于当前hunspell会话,因为根据页面man,只有前缀为的行#才会导致个人词典要保存(即磁盘上的文件)。因此运行

echo "*goosfraba" | hunspell -a

绝对什么也不做。hunspell添加古斯弗拉巴到此会话的字典然后退出(没有其他行要处理)。您必须添加带有前缀的第二行#才能保存最近添加的单词:

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

让我们来看看:

::拼写检查古斯弗拉巴:

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

&=Word字典里没有,有一个险些发生:傻瓜球

::将 goosfraba 添加到字典中,然后在同一hunspell会话期间进行拼写检查(两行):

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

* =Word在字典中。

::拼写检查古斯弗拉巴再次(新hunspell会话):

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

& = 再次强调,word不在字典中(在上一个会话期间没有保存任何内容)

::将 goosfraba 添加到字典并在同一hunspell会话期间保存(两行):

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

::拼写检查古斯弗拉巴再次(新hunspell会话):

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

* =Word在字典中。

答案2

我发现最简单的解决方案是使用 Aspell 并在主文件夹中创建自定义文件,名为.aspell.lang.pws,内容如下:

personal_ws-1.1 en 0
my_word

对于语言“en”,这似乎是共享“便携式词典”的好方法,顺便说一句

相关内容