Rime 输入法使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rime 输入法使用相关的知识,希望对你有一定的参考价值。
参考技术A 久闻 Rime 输入法的大名, 在几次浅尝辄止后, 终于被其高可定制性与简洁所吸引, 进而彻底转入 Rime 的怀抱. 由于 Rime 的安装与使用有一定的难度, 因此本文记录下相关的基础操作, 用于后来查阅.如果你是一个 Rime 新用户, 那么请完全根据本文的顺序进行阅读及配置, 最终将得到一个你满意的输入法. 如果你对 Rime 已经有基本的使用, 那么也可以迅速按照本文目录快速找到你需要的相关配置方法.
首先对 Rime 与其他输入法进行一个我的主观比较(可能不够严谨, 仅供参考)
然后, 在 System Preferences -> Keyboard -> Input Source 中按照如下操作即可添加 Rime 输入法:
Rime 输入法没有配置页面, 所有的配置均通过 yaml 格式的配置文件进行配置(与 vim 通过 ~/.vimrc 进行配置有异曲同工之妙)
Rime 的配置文件路径分为:
通常情况下我们只需要关注 ~/Library/Rime 文件夹即可, 此文件夹下的所有 .yaml 格式文件均为 Rime 的配置文件. 重要的配置文件如下:
具体的设置方式可参考我 repo 中的对应文件. 如果你的 ~/Library/Rime 文件夹中没有以上文件, 那么也可以从此 repo 中复制.
Rime 默认只提供全拼输入方式, 如果我们要使用双拼, 五笔等输入方式, 那么最简单的方式就是使用官方插件管理器 plum (也叫东风破)
安装后我们需要进入 ~/Library/Rime/plum 路径中执行相关命令, 如:
在 ~/Library/Rime/default.custom.yaml 中:
这表示我们只使用 明月拼音 与 小鹤双拼 两种输入方案.
在 ~/Library/Rime/luna_pinyin.custom.yaml 文件中, "translator/dictionary": luna_pinyin.extended 表示使用词典文件 luna_pinyin.extended.yaml . 在 luna_pinyin.extended.yaml 中:
我们可以看到使用了很多外部其他词典, 这些词典都是以 .yaml 结尾的文件移除扩展名后的名称. 具体文件可在我的 repo 上看到.
我们可以将 emoji 与汉字进行混合提示, 只需要通过 东风破 安装 emoji 支持即可
然后即可看到对 emoji 的支持了
如果想要移除每个 emoji 的提示信息, 只需要在 ~/Library/Rime/emoji_suggestion.yaml 中将 tips 进行注释即可
我们可以通过建立自定义词典文件(如 ~/Library/Rime/hl_phrases.dict.yaml ), 并在其中按照 文字 编码 频次(可省略) 的顺序定义单词. 示例如下:
最后需要在 ~/Library/Rime/luna_pinyin.extended.dict.yaml 中增加此词典:
然后进行部署, 我们就可以看到我们定义的 sos 了
部署之后, 然后测试发现我们的 Rime 输入法已经可以使用我们在搜狗中积累的词库了
在 ~/Library/Rime/installation.yaml 声明:
sync_dir 表示会将 ~/Library/Rime 文件夹内的相关内容同步到目标文件夹内. installation_id 表示会根据给定的用户名作为目标文件夹的子文件夹进行同步.
如上, 我们可以在 iCloud 中创建 Rime 文件夹用于同步, 在其他设备中同样进行相同设置, 然后手动触发同步功能即可进行同步
第一阶段的定制基本上到这里就告一段落了, 实际上可以定制的点还非常的多. 推荐阅读 RIME 官方的 定制指南 来进一步的定制.
RIME 需要慢慢的改进配置才能达到令人满意的程度, 就像 Vim 一样, 习惯了之后就会离不开它. 对于我来说, 我是非常喜欢这种高度定制化的输入法的. 至于值不值得去长期折腾, 各位可以尝试之后自行判断.
Ubuntu 上使用 ibus-rime(超实用)
RIME/中州韵输入法引擎(Rime Input Method Engine),是一个跨平台的输入法算法框架。基于这个算法框架开发的输入法,可以粗暴的称为 Rime 输入法。然而,每个平台都有各自的名称:
- 【中州韵】 ibus-rime → Linux
- 【小狼毫】 Weasel → Windows
- 【鼠须管】 Squirrel → Mac OS X
其实这个都很好理解,不同平台不同的软件嘛。我在什么平台我下载对应的软件安装就行了,根本不用 Care 其他平台叫什么名字。
但我要吐槽 RIME 的官方文档,居然把各平台的使用说明杂糅在一起,其最大效果就是让新手「头晕」。
应该把不同平台的软件使用说明独立出来,比如小狼毫使用说明、鼠须管使用说明、中州韵使用说明。我用 ibus-rime,只看 ibus-rime 的说明就可以了嘛,干嘛要给我看小狼毫和鼠须管的使用说明。
在 Linux 下有两大主要的输入法支持框架:fcitx 和 IBus。
- fcitx 是 Free Chinese Input Toy for X 的简称。
- IBus 是 Intelligent Input Bus 的简称。
Rime 二者都支持,有 ibus-rime 和 fcitx-rime 两个版本。值得注意的是,基于 Fcitx 输入法框架的 fcitx-rime 是第三方软件,由 Fcitx 团队开发和维护。参阅 Linux 下的输入法 fcitx vs ibus
ibus-rime 安装
Ubuntu 上直接使用命令安装:
sudo apt-get install ibus-rime
# 五筆86、袖珍簡化字拼音、五筆畫
sudo apt-get install librime-data-wubi librime-data-pinyin-simp librime-data-stroke-simp
安裝更多輸入方案,参阅 RimeWithIBus · GitHub
按组合键 Ctrl+` 或 F4
键唤出输入方案选单,由此调整 Rime 输入法最常用的选项。您可通过方案选单切换已经安装的输入方案。
ibus-rime 必知必会
- 输入法代号:
ibus-rime
- 用户资料夹:
~/.config/ibus/rime/
- 共享资料夹:
/usr/share/rime-data/
共享资料夹包含预设输入方案的源文件。 这些文件属于 Rime 所发行软件的一部份,在访问权限控制较严格的系统上对用户是只读的,因此谢绝软件版本更新以外的任何修改—— 一旦用户修改这里的文件,很可能影响后续的软件升级或在升级时丢失数据。
在「部署 Rime」操作时,将用到这里的输入方案源文件、并结合用户定制的内容来编译预设输入方案。
「用户资料夹」数据说明
用户资料夹则包含为用户准备的内容,如
- 〔全局設定〕
default.yaml
- 〔發行版設定〕
ibus-rime.yaml
- 〔預設輸入方案副本〕
<方案标识>.schema.yaml
ibus-rime.schema.yaml
- ※〔安裝信息〕
installation.yaml
- ※〔用戶狀態信息〕
user.yaml
编译输入方案所产出的二进制文件:
- 〔Rime 棱鏡〕
<方案标识>.prism.bin
- 〔Rime 固態詞典〕
<词典名>.table.bin
- 〔Rime 反查詞典〕
<词典名>.reverse.bin
记录用户写作习惯的文件:
- ※〔用戶詞典〕
<词典名>.userdb.kct
- ※〔用戶詞典快照〕
<词典名>.userdb.txt
、<词典名>.userdb.kct.snapshot
見於同步文件夾
以及用户自己设定的:
- ※〔用戶對全局設定的定製信息〕
default.custom.yaml
- ※〔用戶對預設輸入方案的定製信息〕
<方案标识>.custom.yaml
- ※〔用戶自製輸入方案〕及配套的詞典源文件
注:以上标有 ※ 号的文件,包含用户资料,您在清理文件时要注意备份!
ibus-rime 定制
定制指南
当用户需要对 Rime 中的各种设定做小幅的调节,最直接、但不完全正确的做法是:编辑「共享资料夹」中那些 .yaml
文档(/usr/share/rime-data/
)。
这种方法有很大缺陷:
- 当 Rime 软件升级时,也会升级各种设定档、预设输入方案。用户编辑过的文档会被覆盖为更高版本,所做调整也便丢失了。
- 软件升级后,你不能将备份文件直接覆盖升级后的文件。这将失去本次升级所新增和修复的功能。唯一的方法是,重新编辑升级后的文件。
因此,对于随 Rime 发行的设定档及预设输入方案,推荐的定制方法是:
在「用户资料夹」下创建 .yaml
定制文档;比如
default.yaml
的定制文件名为default.custom.yaml
luna_pinyin
的定制文件名为luna_pinyin.custom.yaml
luna_pinyin_simp
的定制文件名为luna_pinyin_simp.custom.yaml
symbols.yaml
的定制文件名为symbols.custom.yaml
规范为在文件名主体(ID)和 .yaml
之间增加次级扩展名 .custom
。定制文档的书写格式为:
patch:
"一级设定项/二级设定项/三级设定项": 新的设定值
"另一个设定项": 新的设定值
"再一个设定项": 新的设定值
"含列表的设定项/@n": 列表第n个元素新的设定值,从0开始计数
"含列表的设定项/@last": 列表最后一个元素新的设定值
"含列表的设定项/@before 0": 在列表第一个元素之前插入新的设定值(不建议在补丁中使用)
"含列表的设定项/@after last": 在列表 "一级设定项/二级设定项/三级设定项": 新的设定值最后一个元素之后插入新的设定值(不建议在补丁中使用)
"含列表的设定项/@next": 在列表最后一个元素之后插入新的设定值(不建议在补丁中使用)
就是这样:patch
定义了一组「补丁」,以源文件中的设定为基础,写入新的设定项、或以新的设定值取代现有设定项的值。
每次修改配置文件,你需要重新部署来生效。
重新部署的操作方法
-
点击输入法的程序指示器,选择「部署」
-
点击输入法状态栏上的 ⟲ (Deploy) 按钮。如果找不到状态栏,在终端输入以下命令,可触发自动部署:
rm ~/.config/ibus/rime/default.yaml; ibus-daemon -drx
定制每页候选数
Rime 中,默认每页至多显示 5 个候选项,而允许的范围是 1〜9(个别 Rime 发行版可支持 10 个候选)。
设定每页候选个数的默认值为 9,在用户目录建立定制文档 :
vi ~/.config/ibus/rime/default.custom.yaml
patch:
"menu/page_size": 9
重新部署即可生效。
或者重启 ibus-deamon
ibus restart
注意! 如果 default.custom.yaml 里面已经有其他设定内容,只要以相同的缩进方式添加 patch:
以下的部分,不可重复 patch:
这一行。
定制方案选单
vi ~/.config/ibus/rime/default.custom.yaml
:
# default.custom.yaml
patch:
schema_list: # 對於列表類型,現在無有辦法指定如何添加、消除或單一修改某項,於是要在定製檔中將整個列表替換!
- schema: luna_pinyin
- schema: cangjie5
- schema: luna_pinyin_fluency
- schema: luna_pinyin_simp
- schema: my_coolest_ever_schema # 這樣就啓用了未曾有過的高級輸入方案!其實這麼好的方案應該排在最前面哈。
调整方案候选顺序,增加输入法方案,或者通过 #
注释内容将不用的方案移除候选菜单。
重新部署生效。
定制字体字号
GNOME 桌面可以使用扩展 IBus Tweaker。
以下方法不适用 ibus-rime:
# default.custom.yaml
patch:
"style/font_face": "明兰" # 字體名稱,從記事本等處的系統字體對話框裏能看到
"style/font_point": 16 # 字號,只認數字的,不認「五號」、「小五」這樣的
定制皮肤
没有必要浪费时间,默认就简洁美观。
输入符号
符号文件 /usr/share/rime-data/symbols.yaml
开头已经说明了使用方法:
# Usage: patch your Rime schema to enable /X symbols:
# patch:
# punctuator/import_preset: symbols
# recognizer/patterns/punct: \'^/([0-9]0?|[A-Za-z]+)$\'
想在朙月拼音·简化字 luna_pinyin_simp
方案下输入符号,就新建 luna_pinyin_simp.custom.yaml
:
patch:
punctuator/import_preset: symbols
recognizer/patterns/punct: \'^/([0-9]0?|[A-Za-z]+)$\'
重新部署生效。
输入符号请键入识别码:
- 星号
/xh
- 箭头
/jt
- 數字
/1
- 更多符号参阅文件
symbols.yaml
。
其他方案下输入符号,照葫芦画瓢。
符号自定义
拷贝 /usr/share/rime-data/symbols.yaml
为 ~/.config/ibus/rime/symbols.custom.yaml
。在末尾添加自定义符号:
# 个人常用信息
\'/yx\': [ xiaoming@gmail.com, xiaoming@163.com, 1234567910 ]
# 快速输入勾和叉
\'/gc\': [ ✓, ☑, ✗, ☒ ]
想在朙月拼音·简化字 luna_pinyin_simp
方案下输入符号,就修改 luna_pinyin_simp.custom.yaml
文件内容为:
patch:
punctuator/import_preset: symbols.custom
recognizer/patterns/punct: \'^/([0-9]0?|[A-Za-z]+)$\'
重新部署生效。
朙月拼音·简化字扩展词库
朙(míng)同“明”
下载词库,将下面几个文件的 luna_pinyin
修改为朙月拼音·简化字 luna_pinyin_simp
:
luna_pinyin.hanyu.dict.yaml
luna_pinyin.poetry.dict.yaml
luna_pinyin.cn_en.dict.yaml
luna_pinyin.extended.dict.yaml
文件名和文件内容都需要同步修改。比如 luna_pinyin_simp.extended.dict.yaml
,并同步修改文件内的方案 ID。
import_tables:
- luna_pinyin
- luna_pinyin_simp.hanyu
- luna_pinyin_simp.poetry
- luna_pinyin_simp.cn_en
接着将四个文件移动到用户资料夹 ~/.config/ibus/rime
下。
其后,将 luna_pinyin.custom.yaml
中的内容添加到 luna_pinyin_simp.custom.yaml
中。
patch:
punctuator/import_preset: symbols
recognizer/patterns/punct: \'^/([0-9]0?|[A-Za-z]+)$\'
# 載入朙月拼音擴充詞庫
translator/dictionary: luna_pinyin_simp.extended
# 改寫拼寫運算,使得含西文的詞彙(位於 luna_pinyin.cn_en.dict.yaml 中)不影響簡拼功能(注意,此功能只適用於朙月拼音系列方案,不適用於各類雙拼方案)
# 本條補靪只在「小狼毫 0.9.30」、「鼠鬚管 0.9.25 」、「Rime-1.2」及更高的版本中起作用。
speller/algebra/@before 0: xform/^([b-df-hj-np-tv-z])$/$1_/
重新部署生效。
其他扩展词库,xiaoTaoist 制作的词库扩展包,GitHub 地址。
增加自己的词库
我们可以仿照上一步的词典文件建立自己额外的词典,增加自己的词汇。例如,建立名为 my.dict.yaml
的文件,然后参照 luna_pinyin_simp.cn_en.dict.yaml
添加几个自己常用的词汇,文件内容如下:
# my.dict.yaml 文件内容
# Rime dictionary
# encoding: utf-8
#
---
name: my
version: "2020.05.28"
sort: by_weight
use_preset_vocabulary: true
...
GitHub github 100
Stack Overflow so 1000
词典的格式为: 词汇<Tab>编码<Tab>词频
,各个项目之间必须用 Tab(也就是制表符 )分割。一个最保险的方法就是,复制粘贴。词频部分可以不要。
然后在 luna_pinyin_simp.extended.dict.yaml
的 import_tables
中加上自己建立的词汇。
import_tables:
- luna_pinyin
- luna_pinyin_simp.hanyu
- luna_pinyin_simp.poetry
- luna_pinyin_simp.cn_en
- my
一切添加妥当之后,重新部署生效。
导入其他词库
将搜狗输入法词库导入 RIME、将百度输入法词库导入 RIME……一搜便知,无需赘述。
朙月拼音·简化字默认英文
如果经常和英语打交道,偶尔输入汉字,可以把朙月拼音初始状态设为英语,需要时再切回中文。参考 这里 给出的说明,在 luna_pinyin_simp.custom.yaml
文件中加入下面的设置:
patch:
"switches/@0/reset": 1 # 初始的 ascii mode 设置为「西文」
模糊拼音
这里是官方给的一个模板 (朙月拼音)。将模板剪贴进 ~/.config/ibus/rime/luna_pinyin_simp.custom.yaml
文件中,然后需要哪组就去掉那一行前面的 #
即可。
# luna_pinyin.custom.yaml
#
# 【朙月拼音】模糊音定製模板
# 佛振配製 :-)
#
# 位置:
# ~/.config/ibus/rime (Linux)
# ~/Library/Rime (Mac OS)
# %APPDATA%\\Rime (Windows)
#
# 於重新部署後生效
#
patch:
\'speller/algebra\':
- erase/^xx$/ # 第一行保留
# 模糊音定義
# 需要哪組就刪去行首的 # 號,單雙向任選
#- derive/^([zcs])h/$1/ # zh, ch, sh => z, c, s
#- derive/^([zcs])([^h])/$1h$2/ # z, c, s => zh, ch, sh
#- derive/^n/l/ # n => l
#- derive/^l/n/ # l => n
# 這兩組一般是單向的
#- derive/^r/l/ # r => l
#- derive/^ren/yin/ # ren => yin, reng => ying
#- derive/^r/y/ # r => y
# 下面 hu <=> f 這組寫法複雜一些,分情況討論
#- derive/^hu$/fu/ # hu => fu
#- derive/^hong$/feng/ # hong => feng
#- derive/^hu([in])$/fe$1/ # hui => fei, hun => fen
#- derive/^hu([ao])/f$1/ # hua => fa, ...
#- derive/^fu$/hu/ # fu => hu
#- derive/^feng$/hong/ # feng => hong
#- derive/^fe([in])$/hu$1/ # fei => hui, fen => hun
#- derive/^f([ao])/hu$1/ # fa => hua, ...
# 韻母部份
#- derive/^([bpmf])eng$/$1ong/ # meng = mong, ...
#- derive/([ei])n$/$1ng/ # en => eng, in => ing
#- derive/([ei])ng$/$1n/ # eng => en, ing => in
# 樣例足夠了,其他請自己總結……
# 反模糊音?
# 誰說方言沒有普通話精確、有模糊音,就能有反模糊音。
# 示例爲分尖團的中原官話:
#- derive/^ji$/zii/ # 在設計者安排下鳩佔鵲巢,尖音i只好雙寫了
#- derive/^qi$/cii/
#- derive/^xi$/sii/
#- derive/^ji/zi/
#- derive/^qi/ci/
#- derive/^xi/si/
#- derive/^ju/zv/
#- derive/^qu/cv/
#- derive/^xu/sv/
# 韻母部份,只能從大面上覆蓋
#- derive/^([bpm])o$/$1eh/ # bo => beh, ...
#- derive/(^|[dtnlgkhzcs]h?)e$/$1eh/ # ge => geh, se => sheh, ...
#- derive/^([gkh])uo$/$1ue/ # guo => gue, ...
#- derive/^([gkh])e$/$1uo/ # he => huo, ...
#- derive/([uv])e$/$1o/ # jue => juo, lve => lvo, ...
#- derive/^fei$/fi/ # fei => fi
#- derive/^wei$/vi/ # wei => vi
#- derive/^([nl])ei$/$1ui/ # nei => nui, lei => lui
#- derive/^([nlzcs])un$/$1vn/ # lun => lvn, zun => zvn, ...
#- derive/^([nlzcs])ong$/$1iong/ # long => liong, song => siong, ...
# 這個辦法雖從拼寫上做出了區分,然而受詞典制約,候選字仍是混的。
# 只有真正的方音輸入方案纔能做到!但「反模糊音」這個玩法快速而有效!
# 模糊音定義先於簡拼定義,方可令簡拼支持以上模糊音
- abbrev/^([a-z]).+$/$1/ # 簡拼(首字母)
- abbrev/^([zcs]h).+$/$1/ # 簡拼(zh, ch, sh)
# 以下是一組容錯拼寫,《漢語拼音》方案以前者爲正
- derive/^([nl])ve$/$1ue/ # nve = nue, lve = lue
- derive/^([jqxy])u/$1v/ # ju = jv,
- derive/un$/uen/ # gun = guen,
- derive/ui$/uei/ # gui = guei,
- derive/iu$/iou/ # jiu = jiou,
# 自動糾正一些常見的按鍵錯誤
- derive/([aeiou])ng$/$1gn/ # dagn => dang
- derive/([dtngkhrzcs])o(u|ng)$/$1o/ # zho => zhong|zhou
- derive/ong$/on/ # zhonguo => zhong guo
- derive/ao$/oa/ # hoa => hao
- derive/([iu])a(o|ng?)$/a$1$2/ # tain => tian
# 分尖團後 v => ü 的改寫條件也要相應地擴充:
#\'translator/preedit_format\':
# - "xform/([nljqxyzcs])v/$1ü/"
同步用户资料
默认地,词典快照备份到 ~/.config/ibus/rime/sync/UUID
这个地方。我们可以设定同步的目标文件夹,直接编辑 ~/.config/ibus/rime/installation.yaml
:
sync_dir: \'/DATA/Backup/RimeSync\'
然后,点击输入法程序指示器选择「同步」。你的 用户配置、用户词库 等都会被放在目标文件夹。
注意!可能有些你自己添加的文件不会被备份,注意下就行。
我们可以借助移动存储设备,或在线存储服务如百度网盘、坚果云等,在多台电脑及不同系统之间同步用户词典和用户设定。在新电脑上配置一下 installation.yaml
文件,执行 部署 -> 同步 -> 部署 ,你的 用户配置、用户词库 都回来了。
新世纪五笔
参阅 https://github.com/GuoBinyong/wubixinshiji。Rime输入法之五笔自动上屏。
后续配置来自视频 rime 中的小狼毫输入法的安装和基础自定义 所分享的文件: https://www.lanzous.com/ia2g86h。
Easy english
用于输入英文。拷贝下面两个文件到「用户资料夹」:
- easy_en.schema.yaml
- easy_en.dict.yaml
vim default.custom.yaml
添加输入方案:
schema_list:
- schema: wubixinshiji # 新世纪五笔
- schema: wubixinshiji_pinyin # 新世纪五笔·拼音
- schema: luna_pinyin_simp # 朙月拼音·简化字
- schema: easy_en
- schema: pinyin_simp # 袖珍简化字拼音
输入日期(不适用中州韵)
将文件 rime.lua
拷贝到 ~/.config/ibus/rime/
下,在方案配置文件比如 wubi86.schema.yaml
的 engine\\translators:
下面添加滤镜引用:
translators:
- lua_translator@date_translator
- lua_translator@week_translator
更多中州韵输入法(ibus-rime)配置,请阅读晦涩的官方文档:
See also
- Rime (简体中文)
- 致第一次安装RIME的你
- 最新版 Rime 输入法使用
- ubuntu ibus-rime 设置
- Ubuntu下Rime安装配置
- 最新版 Rime 输入法使用
- GNU/Linux 输入法折腾笔记 (RIME)
以上是关于Rime 输入法使用的主要内容,如果未能解决你的问题,请参考以下文章