问题答疑
本章节,将补全一些Rime的常见问题。
WinXP和Win7使用薄荷输入法
Windows XP和Windows 7只支持小狼毫的0.14.3
版本:
从0.15
开始,小狼毫的最低Windows版本为Windows 8。
这样就有一个问题,0.14.3
版本自带的librime(Rime核心库),版本比较低;对Lua脚本的支持不是很好,导致无法发挥出薄荷输入法的全部功能(雾凇等使用Lua脚本的配置也是一样的)。
最好的解决方法肯定是升级操作系统,但是很多情况下,我们的操作系统可能是Windows Server、堡垒机、跳板机等等情况,升级不是很方便。这里有一个差强人意的解决方法:
- 手动升级librime支援库: https://github.com/rime/librime/releases
解压后的内部文件:
.
├── dist
│ ├── bin
│ │ ├── rime_deployer.exe
│ │ ├── rime_dict_manager.exe
│ │ ├── rime_patch.exe
│ │ └── rime_table_decompiler.exe
│ ├── include
│ │ ├── rime_api.h
│ │ └── rime_levers_api.h
│ ├── lib
│ │ ├── rime.dll # 关键支援文件
│ │ └── rime.lib
│ └── share
│ └── cmake
│ └── rime
│ └── RimeConfig.cmake
└── version-info.txt
打开我们的小狼毫的输入法的安装目录:
之后,我们关闭小狼毫的服务。 备份小狼毫的安装目录的rime.dll
,移动刚刚下载和解压文件中的dist/lib/rime.dll
进入其中。
最后,重新启动小狼毫的服务;重新部署即可。
需要注意,根据librime 1.9.0的升级描述之一:
2023.09.16 发布的librime 1.9.0版本开始,不再支持Windows XP。
所以,如果你想通过本方法手动更新小狼毫的依赖库,那么只能用librime 1.8.5了;好消息是,1.8.5目前可以正常使用薄荷输入法的全部功能。
macOS如何移除自带的ABC
有些小伙伴,想只使用鼠须管作为输入法,移除macOS自带的ABC输入法的干扰。其实很简单,修改com.apple.HIToolbox.plist
文件即可:
# 打开com.apple.HIToolbox.plist文件
sudo open ~/Library/Preferences/com.apple.HIToolbox.plist
依次点开Root -> AppleEnabledInputSources
,会看到一列item
,找到其中KeyboardLayout Name
为 ABC 的那一列,将整列item
删掉,然后command + S
保存。
接着重启电脑,打开键盘设置,就可以看到系统自带的 ABC 输入法已经被删掉了。
如果想添加回来,那么在系统设置内添加即可。
如何删除自造字
可以删除自造词,或降低词库中已有词语的权重(回到原始权重,不是降到最低)。
- 鼠须管使用 Fn + ⇧ + ⌫
- 小狼毫使用 Ctrl/Shift + Del
效果:
想永久删除一个词库中存在的词汇,只能编辑词库,重新部署。
Linux薄荷配置无法使用?
Linux 使用 Rime 输入法,需要依靠输入法框架,比如: iBus 和 Fcitx。这个时候,配合 Rime 插件和薄荷输入法配置,有时候发现无法使用。
可能出现的情况:
- 可以输入英文,但是无法输入中文,或者输入法的英文一直在后续内,没有候选词出现,也没有上屏。
- 无法切换输入法,或者切换输入法后,无法输入中文。
- 中文候选词出现,但是每个候选词都会出现组合字符提示,类似于「地球拼音」的提示。
上述问题,都是 Linux 的 librime 过旧问题导致。尤其是,Ubuntu 的 apt 源中的 librime 版本过低,无法支持薄荷输入法中新的 Lua 脚本引入写法。而 部分 Lua 作用于 filter
,导致输入失败。
目前的解决方法,有以下多种方法:
- 等待系统源更新 librime 版本。
- 使用第三方源,如: ibus-rime.AppImage、Fcitx5 With Flatpak。
- 自行编译 librime、librme-lua 和 ibus-rime。参考: Linux上手动编译安装librime、librime-lua以及ibus-rime
- 修改薄荷配置,使其使用旧版本的 Lua 写法。
这里介绍如何回退 薄荷输入法配置,使其使用旧版本的 Lua 写法,参考这一次的 commit: 18e0ae7aa5
举个例子,我们观察薄荷全拼输入文件(rime_mint.schema.yaml)
,发现其中 lua 片段:
engine:
processors:
- lua_processor@*select_character # 以词定字
- lua_processor@*codeLengthLimit_processor # 使用Lua限制输入内容的最大长度(防止过长而卡顿)
translators:
- lua_translator@*mint_date_time_translator # 时间、日期、星期、月份
- lua_translator@*number_translator # 金额大小写
- lua_translator@*chineseLunarCalendar_translator # 农历
filters:
- lua_filter@*corrector_filter # 错音错字提示
- lua_filter@*autocap_filter # 英文自动大写
其中每个lua
脚本的文件名,都是前面加上了*
;这个就是高版本 librime 的可选写法。我们需要将其改为低版本的写法。
首先修改rime.lua
文件:
-- 注册lua脚本
-- 格式: require("脚本文件名"),不需要后缀
select_character = require("select_character")
number_translator = require("number_translator")
reduce_english_filter = require("reduce_english_filter")
mint_date_time_translator = require("mint_date_time_translator")
corrector_filter = require("corrector_filter")
codeLengthLimit_processor = require("codeLengthLimit_processor")
chineseLunarCalendar_translator = require("chineseLunarCalendar_translator")
auxCode_filter = require("auxCode_filter")
autocap_filter = require("autocap_filter")
之后,把rime_mint.schema.yaml
中的processors
、filters
和translators
中的*
去掉即可。同理,其他输入方案也是一样的。
建议使用custom
文件去覆写schema
,而不是直接修改*.schema.yaml
。