我注意到凯特认为某个特定单词拼写正确,即使它拼写错误。当我使用 aspell 或 enchant 实用程序检查单词时,它们都正确地将其识别为拼写错误。我如何知道 kate/KDE 正在使用哪个拼写检查实用程序或字典以及为什么它无法识别拼写错误?
答案1
所以我意识到这是一个老问题,但我似乎一直在重新审视这种情况,也许你也是。
KDE 现在使用“Sonnet”作为拼写框架。显然它可以在下面使用Hunspell(还有Aspell,它不再维护了?)
无论如何,我需要自己解决这个问题再次今天,想给后人留下一个注释... KDE 拼写检查中的 Sonnet 设置(区域设置、拼写检查)将导致无声的失败如果您的特定区域版本未完全安装 - 在我的例子中是澳大利亚英语 (en_AU)。
尝试从 shell 启动 KMail(例如)并注意:
sonnet.core: Missing trigrams for languages: QSet("en_GB", "en_CA", "en_AU")
因此,我的发行版不会自动引入我的 en_AU 词典,并且设置该区域进行拼写并不会抱怨或改变这种情况。
这可能是您问题的根源 - 还可以尝试禁用自动语言检测,直到您解决了字典问题。
答案2
首先找到 Kate 进程的 PID,例如ps aux | grep kate
给出
user 23838 0.9 1.1 862548 97028 ? Sl 12:17 0:05 kate -b /path/to/open/file
user 24710 0.0 0.0 12796 968 pts/0 S+ 12:27 0:00 grep --color=auto kate
kate进程是第一行(检查行末尾的命令),因此它的PID是23838(第一个数字)。
现在运行lsof | grep <PID> | grep spell
。我得到(精简)
kate 23838 jlippuner mem REG 8,1 110400 2884298 /var/lib/aspell/en-wo_accents-only.rws
kate 23838 jlippuner mem REG 8,1 2412496 2884269 /var/lib/aspell/en-common.rws
kate 23838 jlippuner mem REG 8,1 424224 3420495 /usr/lib/x86_64-linux-gnu/libhunspell-1.4.so.0.0.0
kate 23838 jlippuner mem REG 8,1 52128 657021 /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/sonnet/hunspell.so
kate 23838 jlippuner mem REG 8,1 77328 657020 /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/sonnet/hspell.so
kate 23838 jlippuner mem REG 8,1 714800 3408001 /usr/lib/x86_64-linux-gnu/libaspell.so.15.2.0
kate 23838 jlippuner mem REG 8,1 19088 657009 /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/sonnet/aspell.so
kate 23838 jlippuner mem REG 8,1 91248 2884348 /var/lib/aspell/en_US-wo_accents-only.rws
所以就我而言,看起来 kate 加载了 hunspell 和 aspell 库(libhunspell-1.4.so.0.0.0
和libaspell.so.15.2.0
),并且它正在使用aspell
字典(/var/lib/aspell/en-wo_accents-only.rws
和/var/lib/aspell/en-common.rws
)