Skip to content

问题答疑

本章节,将补全一些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支援库

解压后的内部文件:

txt
.
├── 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的升级描述之一:

  • 8b7bdbe: drop BOOST_USE_CXX11; fix 2 cmake warnings (#694) (Qijia Liu) #694

2023.09.16 发布的librime 1.9.0版本开始,不再支持Windows XP。

所以,如果你想通过本方法手动更新小狼毫的依赖库,那么只能用librime 1.8.5了;好消息是,1.8.5目前可以正常使用薄荷输入法的全部功能。

macOS如何移除自带的ABC

有些小伙伴,想只使用鼠须管作为输入法,移除macOS自带的ABC输入法的干扰。其实很简单,修改com.apple.HIToolbox.plist文件即可:

text
# 打开com.apple.HIToolbox.plist文件
sudo open ~/Library/Preferences/com.apple.HIToolbox.plist

依次点开Root -> AppleEnabledInputSources,会看到一列item,找到其中KeyboardLayout Name为 ABC 的那一列,将整列item删掉,然后command + S保存。

删除自带的ABC输入

接着重启电脑,打开键盘设置,就可以看到系统自带的 ABC 输入法已经被删掉了。

如果想添加回来,那么在系统设置内添加即可。

如何删除自造字

可以删除自造词,或降低词库中已有词语的权重(回到原始权重,不是降到最低)。

  • 鼠须管使用 Fn + ⇧ + ⌫
  • 小狼毫使用 Ctrl/Shift + Del

效果: 删除自造字

想永久删除一个词库中存在的词汇,只能编辑词库,重新部署。

Linux薄荷配置无法使用?

Linux 使用 Rime 输入法,需要依靠输入法框架,比如: iBus 和 Fcitx。这个时候,配合 Rime 插件和薄荷输入法配置,有时候发现无法使用。

可能出现的情况:

  • 可以输入英文,但是无法输入中文,或者输入法的英文一直在后续内,没有候选词出现,也没有上屏。
  • 无法切换输入法,或者切换输入法后,无法输入中文。
  • 中文候选词出现,但是每个候选词都会出现组合字符提示,类似于「地球拼音」的提示。

中文输入没有候选项情况

每个候选词都会出现组合字符提示

上述问题,都是 Linux 的 librime 过旧问题导致。尤其是,Ubuntu 的 apt 源中的 librime 版本过低,无法支持薄荷输入法中新的 Lua 脚本引入写法。而 部分 Lua 作用于 filter,导致输入失败。

目前的解决方法,有以下多种方法:

  • 等待系统源更新 librime 版本。
  • 使用第三方源,或者自行编译 librime。参考: ibus-rime.AppImageFcitx5 With Flatpak
  • 修改薄荷配置,使其使用旧版本的 Lua 写法。

这里介绍如何回退 薄荷输入法配置,使其使用旧版本的 Lua 写法,参考这一次的 commit: 18e0ae7aa5

举个例子,我们观察薄荷全拼输入文件(rime_mint.schema.yaml),发现其中 lua 片段:

yaml
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样式

其中每个lua脚本的文件名,都是前面加上了*;这个就是高版本 librime 的可选写法。我们需要将其改为低版本的写法。

首先修改rime.lua文件:

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中的processorsfilterstranslators中的*去掉即可。同理,其他输入方案也是一样的。

建议使用custom文件去覆写schema,而不是直接修改*.schema.yaml