跨平台的开源输入法Rime定制指南,打造强大的个性化输入法

跨平台的开源输入法Rime定制指南,打造强大的个性化输入法

Rime/小狼毫/鼠须管是强大的开源输入法。但是,如何快速地在Linux、macOS以及Windwos上快速配置它呢?让我们一起来看看。

RimeRime/中州韵是开源跨平台输入法框架,不同平台客户端不同:

鼠鬚管 Squirrel: macOS版本Rime

小狼毫 Weasel: Windows版本Rime(支持WinXP~Latest)

ibus-rime: Linux版本基于iBus的Rime

仓输入法 Hamster: iOS版本Rime输入法

小企鹅输入法 Fcitx5: Android上移植Linux Fcitx5输入法框架,可以用于使用Rime输入法

一些特点:

跨平台&开放: 因为是开源的原因,所以社区很开放,并且有着大量活跃用户。可以在多个平台上使用。

支持Lua: 其实这个算一大特点,新的Nginx、Neovim都支持脚本语言Lua了,Rime也同样支持,让用户可以使用Lua脚本进行更多定制化;比如:农历日期输出、数字大写输出等。

纯净、无追踪: 如今越来越关注用户隐私,输入法层面,Rime足够纯净;而且Rime支持本地字典。

关于Lua在Rime内如何使用,可以参考:薄荷输入法 rime 安装、librime-lua、librime-lua/wiki;也可以看看Rime的项目地址集合

接下来,我们就来看看如何安装,以及如何配置和快速使用

折腾输入法?有些小伙伴觉得为什么要折腾输入法呢?

哈哈,这个问题其实就是问喜欢android刷机的小伙伴,为什么要折腾手机root一样。

如果你觉得折腾后,可以锦上添花,或者让输入法更契合你的喜好,让你打字更快、更舒服;亦或者,就是想体验新鲜事;再或者,希望自己的打字习惯,不要流到厂商的大数据等等,都可以尝试折腾一下。

生命不息,折腾不止。

反之,如果你觉得现在用的输入法,已经完全够用;或者已经非常习惯,当然没必要折腾。

记得我当时问一个鹅厂小伙伴:

所以,如果你也想折腾,或者对现在的输入法不满;可以玩玩看看~

辅助视频部分东西,还是视频比较清晰。

这里做个视频,主要内容:

演示配置好后Rime的使用效果

如何在Windows、macOS和Linux上安装Rime

如何使用我的配置快速初始化Rime

使用建议

制作教程不易,如果热心的小伙伴,想支持创作,可以加入我们的「爱发电」电圈:

Mintimate的电圈: https://afdian.net/a/mintimate做教程视频不易(B站根本不会推荐引流),请务必一键三连嗷~

B站视频地址:https://www.bilibili.com/video/BV12M411T7gfYoutube镜像地址: https://youtu.be/yc4AivDDpMM感兴趣的小伙伴,还可以加入群聊:

QQ: 703260572

支持创作

当然,也欢迎在B站或YouTube上关注我们:

Bilibili: https://space.bilibili.com/355567627YouTube: https://www.youtube.com/@mintimate/featured爱发电: https://afdian.net/a/mintimate更多:

Mintimate's Blog 关于页面

如何安装首先我们看看如何安装Rime,主要讲解三大平台:Linux(Debian/Ubuntu)、macOS和Windows。

其他平台,暂不涉及(如: 一些爱好者,适配到Android手机上)。

本章节内容,可以参考官网进行安装: https://rime.im/download/

LinuxLinux上,方法很多。我们可以用框架直接部署,常见的框架:

iBus(Intelligent Input Bus): 是 Unix-like 操作系统下的多语输入法平台。因为它采用了总线(Bus)式的架构,所以命名为Bus。

Fcitx(Flexible Input Method Framework): 在X Window中使用的输入法框架,在源码包内包含了拼音、五笔字型以及区位、二笔的支持。可以输入UTF-8编码中的文字。可以在Linux、FreeBSD中运行。采用GPL授权。支持XIM、GTK(版本2和3)和Qt的输入法模块。

具体可以参考官方项目的文档:RimeWithIBus

我这里就用台Debian的虚拟机作为演示。

首先,从Debian8(Debian Jessie)开始,官方apt源内就已经有ibus-rime的软件包;所以,我们这里直接进行安装即可:

1sudo apt install ibus-rime

安装好以后,注销用户并重新登录(你也可以选择重启设备);之后,就可以在设置内激活我们的ibus-rime了:

到此,rime就安装完成了:

它的配置文件地址为: ~/.config/ibus/rime/

macOS接下来,我们看看macOS如何进行安装。

首先,下载最新版本鼠须管: https://github.com/rime/squirrel/releases/latest

之后进行安装即可:

需要注意,安装好后,同样需要注销用户重新登录。之后,就可以添加我们的Rime鼠须管:

它的配置文件地址: ~/Library/Rime/

Windows最后,我们看看Windwos如何安装。

其实,Windows,作为使用人数最多的操作系统,安装是最简单的。

官方最新版本的小狼毫: https://github.com/rime/weasel/releases/latest

为了优化性能,建议Windows8.1以上的用户,目前可以安装:

五笔98版本Rime(实际上并不只限于五笔): http://98wb.ys168.com/fxliang维护的weasel(抛弃GDI绘制文字,仅支持Windows 8.1或以上版本系统): https://github.com/fxliang/weasel/releases

当然,安装过程中;建议自定义用户的配置文件地址,比如:

它的配置文件地址: %APPDATA%\Rime(默认)

快速上手模板在正式开始之前,给大家分享一下我的配置。支持Linux、Windows、macOS、iOS和Android版本:

薄荷输入法 – Oh-my-rime

特点,已经配置:

内置雾凇拼音词典,并且仓库内的字典与雾凇拼音同步;

已经配置好了水鸭青皮肤样式配置;

内置三款输入法: 薄荷拼音(全拼)、地球拼音-薄荷定制和五笔98薄荷定制,方便不同小伙伴选择自己喜欢的输入方式;

配置多款lua脚本: 支持输入R后输入数字,进行数字转换,支持输入week、date、time和lunar分别输入当前星期、日期、时间以及农历日期,以词定字等。

支持中英混合输入、支持emoji输入、支持繁体输入等。

只需要下载并移动文件到配置目录,重新部署即可:

详细的配置,可以查看:

薄荷输入法 Oh-my-rime 官方文档: https://www.mintimate.cc

如果感觉非常有帮助,欢迎帮我一起承担网站和构建服务器费用(务必备注: 薄荷输入法,这样你的ID才可以出现在薄荷输入法的感谢名单里):

Mintimate’s 爱发电

基础配置打开我们的Rime,使用过程中。你会发现,它应该是这样的:

乍一看,有一些问题:

样式复古,有点像以前上世界的界面?

没有词库,操作一般

为了进一步现代化。我们这里对其进行配置。

默认情况下的配置文件(配置文件存放在配置目录下;如果不存在,可以手动创建):

文件

注释

default.custom.yaml

核心配置、全局配置

squirrel.custom.yaml / weasel.custom.yaml / ibus_rime.yaml

平台相关配置。样式皮肤,不同软件默认输入法状态等。

<方案标识>.custom.yaml

输入方案的定制配置

<名称>.dict.yaml

词典

custom_phrase.txt

自定义短语

优先级上:

1输入方案的定制配置 > 核心配置、全局配置 > 系统自带的default.yaml

举个例子,你使用明月拼音,那么输入方案的定制配置就是:lua_pinyin.custom.yaml

部署编译首先,Rime是如何运用个性化配置呢?很简单,用户在修改配置目录内的文件,这个只是临时修改,而真正要生效,就需要Rime重新进行部署操作。

在执行部署操作后,Rime会进行编译,将用户的自定义内容(包括词典),编译到配置目录内的build文件夹内。

部署编译,基本上三大系统是一样的:

需要注意,Windows上,选择方案,可以可视化操作部分default.custom.yaml选项。右键小狼毫图标就可以选择了:

方案选择在学习配置前。我们看看如何选择方案。

我们可以使用热键进行方案切换,热键默认是Ctrl + ~或F4:

其中F4比较容易冲突,那么可以进行修改.直接配置default.custom.yaml里的hotkeys

12"switcher/hotkeys": - "Control+grave"

而可以激活的方案,一是default.custom.yaml里的schema_list比如上图内,macOS的配置:

123schema_list: - {schema: terra_pinyin} - {schema: luna_pinyin_simp}

还有一部分,就是输入法的配置文件,比如:

1234567891011121314switches: - name: ascii_mode reset: 0 states: [ 中文, 英文 ] - name: emoji_suggestion reset: 0 states: [ "😣️","😁️"] - name: full_shape states: [ 半角, 全角 ] - name: simplification reset: 1 states: [ 繁体, 简体 ] - name: ascii_punct states: [ 。,, ., ]

如果你需要更改上述文件,记得更改之后,重新部署。

样式文件样式上面,我们需要进入rime的配置文件地址内。上文其实已经提及,需要注意的是,Windows用户可以直接右键打开:

macOS其实也一样可以:

Linux可能还是要比较辛苦一下,直接编辑~/.config/ibus/rime内的文件。

而配置样式,就是配置配置文件目录下的样式配置文件即可。不过,发行版本的rime,样式配置文件是不一样的:

鼠鬚管 Squirrel: 配置文件夹下squirrel.custom.yaml文件;

小狼毫 Weasel: 配置文件夹下weasel.custom.yaml文件;

ibus-rime: 配置文件夹下ibus_rime.yaml文件。

为什么文件里都带个custom呢?实际上,带custom的配置文件,会在rime重新编译部署后,替换系统自带的不带custom的配置文件内容,如:squirrel.custom.yaml替换squirrel.yaml。

横排显示首先我们看看如何横排显示。squirrel.custom.yaml和weasel.custom.yaml只需要添加

12patch "style/horizontal": true # 横向展示

需要注意,这里使用的是Yaml格式,根节点是patch,标记为追加内容;style为一级节点,horizontal为二级节点。

另外,需要注意;Rime的缩进敏感。在没设置好编辑器缩进情况下,不建议用Tab键直接进行缩进。(比如:Vscode的缩进,Tab有时候是四个空格,有时候为两个。)

比如:Windows上编辑weasel.custom.yaml文件:之后的效果:

而Linux上的ibus_rime.yaml文件,因为系统本身并没有ibus_rime.yaml与之对应。所以就不用加上custom;在文件内,也不需要加上patch根节点:

12style: horizontal: true # 横向展示

网上有小伙伴说,直接建立ibus_rime.custom.yaml并在其中加上根节点patch也会覆盖。但是我这个版本并没有用……

之后,重新部署。一般就可以看到效果了:

重新部署后,build内就会有新的配置文件被创建了:

配色样式当然,我们还可以设置Rime的输入法配色。不过需要注意:Linux上受限于ibus框架,所以Linux上的ibus-rime无法更改配色;但是,如果你Linux可以更改ibus的配色,那么可以尝试更改ibus框架样式,比如: ibus Tweaker

以下介绍小狼毫和鼠须管如何配置。

打开配置文件(squirrel.custom.yaml/weasel.custom.yaml),在patch节点下增加内容:

1234567891011121314"preset_color_schemes/MyStyleMi": name: MyStyleMi author: Mintimate <"Mintimate's Blog"> text_color: 0x6495ed #拼音串 candidate_text_color: 0x424242 # 非第一候选项 back_color: 0xefefef # 背景 border_color: 0xefefef # 边框 hilited_text_color: 0xed9564 # 拼音串高亮 hilited_back_color: 0xefefef # 拼音串高亮背景 hilited_candidate_back_color: 0xed9564 # 第一候选项背景 hilited_candidate_text_color: 0xefefef # 第一候选项 hilited_comment_text_color: 0xefefef # 注解文字高亮 comment_text_color: 0xcac9c8 # 注解文字 label_color: 0xcac9c8 # 预选栏编号颜色

其中,颜色部分,使用16进制进行表示;和#开头的16进制比,如果颜色为#ed9564,那么转为0x开头就是ed和64互换:0x6495ed。

添加"style/color_scheme"选项(macOS还可以设置"style/color_scheme_dark"用于暗色模式)激活:

123"style/color_scheme": MyStyleMi# macOS下暗色模式(MyStyleMiDark需要另外配置)"style/color_scheme_dark": MyStyleMiDark

同时,可以设置候选词的大小、窗口半径等等:

1234567891011121314151617"us_keyboard_layout": true"style/display_tray_icon": true"style/font_face": "PingFang""style/font_point": 16"style/label_font_point": 12 # 候选词数字大小"style/horizontal": true # 横向展示"style/inline_preedit": false # 内嵌预编辑"style/corner_radius": 15 # 窗口圆角半径"style/layout/border": 0 # 窗口边界高度,大于圆角半径才有效果"style/layout/border_width": 0 # 窗口边界宽度,大于圆角半径才有效果"style/layout/candidate_spacing": 12"style/layout/hilite_padding": 8"style/layout/hilite_spacing": 3"style/layout/margin_x": 8"style/layout/margin_y": 8"style/layout/round_corner": 7"style/layout/spacing": 10

之后,重新部署。即可看到效果:

输入配置接下来,我们看看输入的基础配置。比如:候选词有几个、激活什么组件等。

首先是候选词,这次可不再是squirrel.custom.yaml/weasel.custom.yaml/ibus_rime.yaml了。它们是样式的。这次我们配置输入的。

以全局输入配置为例,我们在patch节点下添加:

1"menu/page_size": 9 # 候选词个数

之后,重新部署即可看到效果:

与此同时,rime默认切换输入法是``Shift`,原因是默认配置是这样的:

12345678patch: ascii_composer/good_old_caps_lock: true ascii_composer/switch_key: Caps_Lock: commit_code Control_L: noop Control_R: noop Shift_L: commit_code Shift_R: commit_code

解释一下:

选项

注释

commit_text

提交候选区的文字,然后切换到英文模式。

commit_code

提交已输入的编码(拼音字母),然后切换到英文模式。

inline_ascii

仅样式配置内存在 inline_preedit=true 时有效。在输入法的编辑区临时切换到英文,提交后恢复中文。

noop

不执行任何操作。

clear

清除已输入的编码,然后切换到英文模式。

你也可以自己设置,比如我设置的:

12345678patch "ascii_composer/good_old_caps_lock": true "ascii_composer/switch_key": Caps_Lock: commit_code Control_L: noop # 不做任何操作 Control_R: noop # 不做任何操作 Shift_L: commit_code Shift_R: inline_ascii

所以,我的配置就是这样的:

到此,基础配置完毕。以上部分出现的一些配置没讲解,将在后文拆解(当然,不可能拆解透彻,建议多配合官方文档:https://github.com/rime/home/wiki)

进阶配置接下来,我们看看进阶部分的配置。本章节默认大家已经入门rime了,部分步骤不再详细演示。

字典配置我们的输入法,还没有完全“认识”我们。不知道我们先输入什么词汇?

所以,我们需要给他词汇表,让它背下来~

引入词汇,首先是在default.custom.yaml引入配置:

12# 开启用户词典功能"translator/enable_user_dict": true

之后,创建当前输入法的定制文件。比如我使用的是明月拼音-简s s化字,所以创建:luna_pinyin_simp.custom.yaml。

在其中添加内容:

123# encoding: utf-8patch: 'translator/dictionary': custom_dict.all

其中:

custom_dict.all: 为字典总表文件。对应就是配置文件目录内custom_dict.all.dict.yaml。这个可以直接自定义。

接下来,我们再创建它,并添加内容:

12345678910111213141516---name: custom_dict.all ##注意name和文件名一致version: "2020.6.7"sort: by_weightuse_preset_vocabulary: true# 此处为 输入法所用到的词库,既补充拓展词库的地方import_tables: - luna_pinyin # 系统基础字库 - dicts/luna_pinyin.chaizi # 拆字词库 - dicts/custom_simple # 自定义 - dicts/luna_pinyin.sougou # 搜狗词库 - dicts/luna_pinyin.xiandaihanyu # 现代汉语词典 - dicts/se_words # 互联网网络词汇 - dicts/luna_pinyin.biaoqing # 表情 - dicts/luna_pinyin.emoji # emoji Ext...

import_tables下,除了luna_pinyin文件,都在dicts对应配置文件目录dicts(也是自己创建),举个例子:dicts/luna_pinyin.chaizi就对应配置文件夹dicts/luna_pinyin.chaizi.dict.yaml比如我的:

至于词库字典内容,就需要你直接添加到dicts文件,并追加到custom_dict.all.dict.yaml文件内了。相当于custom_dict.all.dict.yaml文件是总管,输入法的定制文件考虑是否要启动这个班组。

字典获取我们的字典文件应该是长这样:

其中,表头为解析声明。name需要与文件截取掉.dict.yaml后一样,否则无法扫描到:

123456---name: luna_pinyin.sougouversion: "2023.01.08"sort: by_weightuse_preset_vocabulary: true...

而下面文件就是txt的文本格式了。获取可以使用:

深蓝词库转换: https://github.com/studyzy/imewlconverter

颜文字借助上述的字典操作,我们可以扩展出颜文字。绑定键盘vv键,呼出颜文字:

参考至rime-settings获得的颜文字字典:

颜文字字典

颜文字字典_备份

输入符号如何输入符号呢?比如这样的:

亦或者这样:

在或者这样的:

其实,也是十分简单。我们只需添加symbol选项即可(反查),在输入法的选项内,添加:

123patch: punctuator/import_preset: symbols recognizer/patterns/punct: '^/([0-9]0?|[A-Za-z]+)$'

具体支持的内容,可以查看:

symbols

模糊拼音哈哈,有时候经常分不清翘舌。所以总是需要模糊拼音一下。其实添加的方法,官方也写的很详细:

官方方案教程

简单来说,就是打开输入法的.custom.yaml文件,在patch根节点下,添加'speller/algebra'节点。

比如:

123456789101112131415'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/([aei])n$/$1ng/ # en => eng, in => ing - derive/([aei])ng$/$1n/ # eng => en, ing => in - derive/([iu])an$/$lang/ # ian => iang, uan => uang - derive/([iu])ang$/$lan/ # iang => ian, uang => uan - 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 - abbrev/^([a-z]).+$/$1/ #简拼(首字母) - abbrev/^([zcs]h).+$/$1/ #简拼(zh, ch, sh)

需要注意,简拼配置,一定要在最后。否则会出现意想不到的效果哦,<( ̄︶ ̄)↗

123# 这两个要在最后- abbrev/^([a-z]).+$/$1/ #简拼(首字母)- abbrev/^([zcs]h).+$/$1/ #简拼(zh, ch, sh)

高级配置本章节更进一步,谈谈Rime的高级配置。

时间组件时间组件,其实就是用Lua的脚本。如果之前有看过我Lvim的教程的小伙伴,应该会比较熟悉。

Rime也是支持Lua的脚本插件。最终实现的效果:

rime的Lua的适配,可以参考:

https://github.com/hchunhui/librime-lua/wiki#installation

这里直接说一下现成的使用,首先是在配置目录内创建rime.lua文件,类似与我们之前创建的custom_dict.all.dict.yaml。并在其中写入:

12time_translator = require("time")date_translator = require("date")

紧接着,我们创建在配置文件目录创建Lua文件夹,并在其中创建与上文对应的time.lua和date.lua文件:

date.lua写入信息:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 --lua语言中的注释用“--”local function translator(input, seg) if (input == "date") then--------------------------------------------------------------------------------------普通日期1,类似2022年01月02日date1=os.date("%Y年%m月%d日")date_y=os.date("%Y") --取年date_m=os.date("%m") --取月date_d=os.date("%d") --取日--yield(Candidate("date", seg.start, seg._end, date1, " "))--------------------------------------------------------------------------------------普通日期2,类似2022年1月1日num_m=os.date("%m")+0num_m1=math.modf(num_m)num_d=os.date("%d")+0num_d1=math.modf(num_d)date2=os.date("%Y年")..tostring(num_m1).."月"..tostring(num_d1).."日"yield(Candidate("date", seg.start, seg._end, date2, " "))--------------------------------------------------------------------------------------普通日期3,类似1月1日num_m=os.date("%m")+0num_m1=math.modf(num_m)num_d=os.date("%d")+0num_d1=math.modf(num_d)date3=tostring(num_m1).."月"..tostring(num_d1).."日"yield(Candidate("date", seg.start, seg._end, date3, " "))yield(Candidate("date", seg.start, seg._end, os.date("%Y/%m/%d"), " "))yield(Candidate("date", seg.start, seg._end, os.date("%Y-%m-%d"), " "))--------------------------------------------------------------------------------------大写日期,类似二〇二〇年十一月二十六日date_y=date_y:gsub("%d",{["1"]="一",["2"]="二",["3"]="三",["4"]="四",["5"]="五",["6"]="六",["7"]="七",["8"]="八",["9"]="九",["0"]="〇",})date_y=date_y.."年"date_m=date_m:gsub("%d",{["1"]="一",["2"]="二",["3"]="三",["4"]="四",["5"]="五",["6"]="六",["7"]="七",["8"]="八",["9"]="九",["0"]="",})date_m=date_m.."月"if num_m1==10 then date_m="十月" endif num_m1==11 then date_m="十一月" endif num_m1==12 then date_m="十二月" enddate_d=date_d:gsub("%d",{["1"]="一",["2"]="二",["3"]="三",["4"]="四",["5"]="五",["6"]="六",["7"]="七",["8"]="八",["9"]="九",["0"]="",})date_d=date_d.."日"if num_d1>9 thenif num_d1<19 thendate_d="十"..string.sub(date_d,4,#date_d)endendif num_d1>19 then date_d=string.sub(date_d,1,3).."十"..string.sub(date_d,4,#date_d) enddate4=date_y..date_m..date_dyield(Candidate("date", seg.start, seg._end, date4, " "))--------------------------------------------------------------------------------------英文日期 local date_d=os.date("%d") local date_m=os.date("%m") local date_y=os.date("%Y") local date_m1="" local date_m2="" if date_m=="01" then date_m1="Jan." date_m2="January" end if date_m=="02" then date_m1="Feb." date_m2="February" end if date_m=="03" then date_m1="Mar." date_m2="March" end if date_m=="04" then date_m1="Apr." date_m2="April" end if date_m=="05" then date_m1="May." date_m2="May" end if date_m=="06" then date_m1="Jun." date_m2="June" end if date_m=="07" then date_m1="Jul." date_m2="July" end if date_m=="08" then date_m1="Aug." date_m2="August" end if date_m=="09" then date_m1="Sept." date_m2="September" end if date_m=="10" then date_m1="Oct." date_m2="October" end if date_m=="11" then date_m1="Nov." date_m2="November" end if date_m=="12" then date_m1="Dec." date_m2="December" end if date_d=="0" then symbal="st" elseif date_d=="1" then symbal="nd" elseif date_d=="2" then symbal="rd" else symbal="th" enddate5=date_m1.." "..date_d..symbal..", "..date_ydate6=date_m2.." "..date_d..symbal..", "..date_yyield(Candidate("date", seg.start, seg._end, date5, " "))yield(Candidate("date", seg.start, seg._end, date6, " "))yield(Candidate("date", seg.start, seg._end, os.date("%Y%m%d"), " ")) endend------------------------------------------------------------------------------------return translator

time.lua写入信息:

12345678910 --lua语言中的注释用“--”local function translator(input, seg) if (input == "time") then --关键字更改,你也可以用or语句定义多个关键字 yield(Candidate("time", seg.start, seg._end, os.date("%H:%M"), " ")) yield(Candidate("time", seg.start, seg._end, os.date("%H点%M分"), " ")) yield(Candidate("time", seg.start, seg._end, os.date("%H:%M:%S"), " ")) yield(Candidate("time", seg.start, seg._end, os.date("%H点%M分%S秒"), " ")) endendreturn translator

最后,在配置文件内。激活插件:

123engine/translators: - lua_translator@date_translator - lua_translator@time_translator

EmojiEmoji之前是挺麻烦的。现在官方出来Emoji opencc,就简单很多了。

参考:https://github.com/rime/rime-emoji

首先是下载其中的opencc文件到本地配置文件夹目录内:

之后,我们对单个输入发进行配置:

1234567891011121314151617181920212223242526patch: # 设置切换 switches: - name: ascii_mode reset: 0 states: [ 中文, 英文 ] - name: emoji_suggestion reset: 0 states: [ "😣️","😁️"] - name: full_shape states: [ 半角, 全角 ] - name: simplification reset: 1 states: [ 繁体, 简体 ] - name: ascii_punct states: [ 。,, ., ] # 激活设置 engine/filters: - simplifier@emoji_suggestion - simplifier@zh_simp # 简体过滤 - simplifier # 简体 - uniquifier # rime基础驱动 # 定义 emoji_suggestion: opencc_config: emoji.json option_name: emoji_suggestion

英文输入的支持用明月拼音,你会发现?怎么无法中英输入?

其实,是可以通过补丁的方式,支持我们的英文单词输入。参考:

rime-easy-en

我们需要做的,是把easy-en作为明月输入发的扩展,扩展到明月拼音等输入法内。

只需要将easy_en.schema.yaml、easy_en.dict.yaml、easy_en.yaml 和lua/easy_en.lua复制到 rime 配置目录。

最后,在输入法的配置项内激活即可,比如:明月拼音-简化版(luna_pinyin_simp.custom.yaml):

12patch: __include: easy_en:/patch

某些特殊方案需要指定方案名称,如微软双拼:

12patch: __include: easy_en:/patch_double_pinyin_mspy

最后,重新部署,即可看到效果:

定制组件其实,你还可以基于模版,开发自己的输入法模版样式。

当然,定制前…… 可以看看官方自带的是怎么写的:

明月拼音

在配置目录内创建一个名字以.schema.yaml结尾的配置文件。之后,在其中按照官方的模版配置即可。其中的内容包括:

方案定义、描述

引擎(输入法的核心,用什么引擎去书写,比如控制是空格选定还是分隔等)

其中的描述部分:

12345678schema: schema_id: luna_pinyin name: 明月拼音-定制版 version: "9.0" author: - Mintimate description: | 基于Rime预设的拼音方案。

之后的引擎参考:

123456789101112131415161718192021222324engine: # 输入引擎设定,即挂接组件的“处方” processors: # 一、这批组件处理各类按键消息 - ascii_composer # ※ 处理西文模式及中西文切换 - recognizer # ※ 与 matcher 搭配,处理符合特定规则的输入码,如网址、反查等 - key_binder # ※ 在特定条件下将按键绑定到其他按键,如重定义逗号、句号爲候选翻页键 - speller # ※ 拼写处理器,接受字符按键,编辑输入码 - punctuator # ※ 句读处理器,将单个字符按键直接映射爲文字符号 - selector # ※ 选字处理器,处理数字选字键、上、下候选定位、换页键 - navigator # ※ 处理输入栏内的光标移动键 - express_editor # ※ 编辑器,处理空格、回车上屏、回退键等 segmentors: # 二、这批组件识别不同内容类型,将输入码分段 - ascii_segmentor # ※ 标识西文段落 - matcher # ※ 标识符合特定规则的段落,如网址、反查等 - abc_segmentor # ※ 标识常规的文字段落 - punct_segmentor # ※ 标识句读段落 - fallback_segmentor # ※ 标识其他未标识段落 translators: # 三、这批组件翻译特定类型的编码段爲一组候选文字 - echo_translator # ※ 没有其他候选字时,回显输入码 - punct_translator # ※ 转换标点符号 - script_translator # ※ 脚本翻译器,用于拼音等基于音节表的输入方案 - reverse_lookup_translator # ※ 反查翻译器,用另一种编码方案查码 filters: # 四、这批组件过滤翻译的结果 - simplifier # ※ 繁简转换 - uniquifier # ※ 过滤重複的候选字,有可能来自繁简转换

具体定制,可以参考官方的Demo:

https://github.com/rime/home/wiki/RimeWithSchemata#rime-with-schemata

Q&A配置不生效?通常情况下,如果是字典等内容,配置了但是没有生效。一般是格式错误。尤其是rime对yaml的格式极其严格。建议:

yaml内,不要使用Tab键进行缩进

字典文件内,使用无格式的编辑器进行编辑

第二点是为什么呢?举个例子。

在字典文件内,我们使用Tab进行词与字符的分隔。使用Tab应该是这样的(macOS上纯文本编辑):

但是在Xcode、Vscde上的Tab默认会自动转义为四个空格:

这个时候重新部署就是没有用的了。

查看日志?如果有时候,重新部署 错误。或者设置的配置没生效,想要查看日志怎么办?

其实Rime是有日志服务的,不同版本Rime的日志存放地址是:

Windows

Weasel: %TEMP%

Mac OS X

Squirrel: $TEMPDIR

Linux

iBus: /tmp

比如macOS的:

More感谢本次文章参考多方文档和教程:

Rime/小狼豪/鼠须管 输入法配置记

Rime-Setting

若对文章很感兴趣,可以B站关注我ヾ(≧▽≦*)o

点此跳转“爱发电”页面(○` 3′○)

🎨 相关创意作品

《地平线西之绝境完整版》按键说明
365bet线路检测

《地平线西之绝境完整版》按键说明

📅 07-16 👁️ 7520
如何应对笔记本触摸板进水的情况?——笔记本维修指南
家里有鬼的十种征兆,你注意到了吗
哪个才是365官网

家里有鬼的十种征兆,你注意到了吗

📅 07-07 👁️ 7218