![多个私人 ispell 词典](https://linux22.com/image/199278/%E5%A4%9A%E4%B8%AA%E7%A7%81%E4%BA%BA%20ispell%20%E8%AF%8D%E5%85%B8.png)
我有一个应用程序,我想在其中使用 ispell 并让它使用由三个输入构造的字典:
- 默认语言词典(在我的例子中是英语,由系统提供)。
- 手动策划的单词列表(要求 ispell“插入”一个单词应该添加到此列表中)。
- 动态生成的作品列表。
重要的是,最后一个源将定期重新生成,添加和去除这些词可能出现在其他两个来源中,也可能不出现。
- 有什么办法可以做到这一点吗?
- 有没有什么方法可以使用具有类似功能集的替代拼写检查来做到这一点?
我可以通过生成每次使用的字典来伪造一些东西:
ispell -p <(cat local.dict dynamic.dict | sort -u) $FILE
但是,一旦我需要添加一个新单词,这就不起作用了local.dict
:ispell 无法找到原始文件,因此显然无法修改它。
我希望能够通过多个-p
ispell -p local.dict -p dynamic.dict $FILE
但似乎只有最后一个被注意到。
$PWD/.ispell_words
我什至尝试利用 ispell 将使用and的合并这一事实$HOME/.ispell_words
(这需要重写$HOME
)。这实际上在大多数情况下都有效,但似乎在添加新单词时, ispell 写出合并字典,结果是将当前动态字典中的所有内容复制到永久静态字典中。
此时,我开始考虑将英语词典和自定义词典合并到临时文件中并通过-d
.但这类事情似乎会引发无穷无尽的问题,比如如何可靠地找到字典?
答案1
hunspell
(如果您可以安装它,则没有有关您的系统的信息)接受带有该-d
标志的多个词典。有关词典格式和个人词典规范的信息,请查看联机帮助页 ( -p
)。
-d dict,dict2,...
Set dictionaries by their base names with or without paths. Example of the syntax:
-d en_US,en_geo,en_med,de_DE,de_med
您可以在以下位置找到更多信息手册页。