Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Ace-Who/rime-xuma

徐码/爾雅:三重注解、双重反查、屏蔽词组、全码后置、顶功版本……
https://github.com/Ace-Who/rime-xuma

Last synced: about 1 month ago
JSON representation

徐码/爾雅:三重注解、双重反查、屏蔽词组、全码后置、顶功版本……

Awesome Lists containing this project

README

        

# Rime 徐码输入方案

[发布地址](https://github.com/Ace-Who/rime-xuma) ·
[项目主页](https://ace-who.github.io/rime-xuma/) ·
[更新日志](CHANGELOG.md) ·
[徐码文档](https://www.xumax.top) ·
[徐码五二顶](misc/五二顶)

[Rime 输入法软件](https://rime.im/)

[TOC]

## 前言

徐码简繁通打输入法,又名爾雅简繁通打输入法。这是一个初学者为了让自己用最舒服的
姿势学会徐码而设计的用于 Rime 平台的方案,和在熟练后为更高效打字而设计的一些衍
生方案。

配置和使用中可能遇到的大多数问题,答案都在本说明中,请仔细查阅。如果找不到答案
,欢迎提交 issue 反馈。

特色功能「三重注解」:

- 字根拆分 + 编码 + 拼音。
- 支持词组拆分(按照官方词组编码规则)。
- 大码大写、全简合一。
- 标点和[符号][`symbols.yaml`]也显示徐码编码。

[`symbols.yaml`]: https://github.com/rime/rime-prelude/blob/master/symbols.yaml

![三重注解](demo/tripple_comment.png)

![符号编码](demo/symbols_jt_comment_xuma.png)
![符号编码](demo/symbols_xz_comment_xuma.png)

方案自带说明:

![自带说明](demo/help.gif)

快捷键演示:

![快捷键效果](demo/shortcut_keys.gif)

## 配置说明(已经很短的)

1. 下载[最新发布][],将 schema 目录下的「所有」文件(注①)放到 rime [用户目录][]。
1. - 若直接修改配置文件添加方案,应该不需要说明,记得重新部署。
- 若通过图形界面设定输入法,在设定中添加所需方案,确定后一般会自动部署。

可选方案:

- 徐码·QS:适合新手和大部分人。候选垂直排列,每页五个;启用编码补全。
- 徐码·QS·一型:适合追求界面简洁者。候选水平排列,每页三个;禁用编码补全;内嵌输入码。
- 徐码五二:提高单字效率。延迟顶功版本,二码字免空格。不改变编码,完全兼容常规版方案。详情参阅「[徐码五二](misc/五二顶)」。
- 其他方案:均为伪方案或辅助方案,不可直接使用。

[最新发布]: https://github.com/Ace-Who/rime-xuma/releases/latest
[用户目录]: https://github.com/rime/home/wiki/UserData

注①:`xuma.extended.dict.yaml` 用于用户添加个人词库,内含用法说明,更新时请备份并保留该文件,以免丢失个人词库。

注②:iRime 的配置方法或许有些不同,请另外寻找说明。我自己没有成功部署,原因未知。

## 功能介绍

重点总结:

- 三重注解、双重反查,为徐码初学者(我)扫除障碍。
- 固定词序和自造词动态调序兼得,两全其美。
- 还可一键屏蔽词组,同时满足单字派和词组派。
- 全码后置:出简亦出全,但是将有简码的单字在全码重码时放到后面,实现避重。

可即时开关或变更的功能:

- 【三重注解】:参考演示。默认开启。
- 【全拼反查】【五笔画反查】【双重反查】。
- 【屏蔽词组】:默认关闭。
- 【字集切换】:GB2312、GBK(默认)、BIG5、UTF-8(全字集)。
- 【显示时钟】:默认关闭。
- 【繁体简化】:即繁入简出。默认关闭。
- 【简入繁出】:默认关闭。
- 【全码后置】:简码单字排序靠前,全码重码时降低排序,让位于无简码字词。默认开
启。

固定特性:

- 内置词顺序固定:固态词典中的字词,永远置顶且顺序固定。
- 自造词自动调序:用户词典中的词组,最近常用者排序靠前。
- 简码词组次三选:所有一级简码词组和二级简码词组保证排在候选的第二位和第三位。
- 重复历史上屏:输入 `dl`。
- 支持手动造词:只需以单引号 `'` 或反撇号 `` ` `` 分隔输入串。
如:欲造「手动造词」,输入 `rs'ea'poz'zb` 后依次选字即可。
如果已存在词组「手动」和「造词」,也可输入 `rsea'pozb`。
(目前方案将 `'` 绑定为数字 3 用来选重了,所以只能用 `` ` ``。)
- 支持自动造词:(现已不启用,启用方法是将
`xuma_qshare.schema:/translator/encode_commit_history` 的值改为 `true`。)
连续上屏的字词中,五字以内的段落,自动编码为徐码(四码)。输入该编码再次上屏
,便收入用户词典(特征是后面不再出现太极图章「☯」,且纳入逐键提示的范围)。
参考下方图示。

![自动造词](demo/encode_commit_history_01.png)

![自动造词](demo/encode_commit_history_02.png)

![自动造词](demo/encode_commit_history_03.png)

![自动造词](demo/encode_commit_history_04.png)

上屏成词之后:

![自动造词](demo/encode_commit_history_05.png)

![自动造词](demo/encode_commit_history_06.png)

## 使用说明

自带说明请善加利用:

![自带说明](demo/help.page1.png)
![自带说明](demo/help.page2.png)

功能开关快捷键:

- Ctrl + Shift + 4:繁体简化
- Ctrl + Shift + F:简入繁出
- Ctrl + C:三重注解,仅输入状态可用。
- Ctrl + Shift + C
「〇→一重→二重→三重」注解模式轮换,仅输入状态可用。
- Ctrl + S:屏蔽词组,仅输入状态可用。
- Ctrl + T:显示时钟,仅输入状态可用。
- Ctrl + D
预显候选,即显示输入码分段所对应的两个候选,顶功专用,仅输入状态可用。
- F4 / Ctrl + \`
方案选单,可控制以上所有开关和字符集选择、全码后置。
这是 Rime 内置的快捷键,更多内置功能请参考 [Rime 使用说明][RimeUserGuide]。

[RimeUserGuide]: https://github.com/rime/home/wiki/UserGuide

通过 `F4` 选单切换「漢字/汉字」,可记忆简化字开关,通过快捷键切换则不记忆。

功能引导串:

- `dl`:调出历史上屏。
- `` ` ``:双重反查(全拼 + 五笔画)。
- `` `P``:全拼反查。
- `` `B``:五笔画反查(横h 竖s 撇p 捺/点n 折z)。
- `env/`:获取系统环境变量,后跟变量名。
- `help/`:查看本方案简要使用说明。

技巧提示:

- 使用拼音反查时,默认排序以繁体优先,可通过切换「繁体简化」来改变,同时「简入
繁出」应当是关闭的。

![反查繁体](demo/reverse_lookup_traditional.png)
![反查简体](demo/reverse_lookup_simplified.png)

更多细节演示:

![自造词注解](demo/user_dict_comment.png)

![环境变量支持](demo/environment_variable.png)

## 数据来源

原始码表由徐码作者徐国银先生提供,含九万多字和约八万简繁词组,经过排序整理,还
在持续修订维护中。

字根拆分原始数据由 QQ 徐码输入法官方群(218210590)小鸮(1360057135)提供。
拼音数据来自 [Mozillazg 整理的汉典数据](https://github.com/mozillazg/pinyin-data)。

## 关于简码

### 单字简码

官方码表的简码设置有优化空间,我参考汉语字频统计资料作了修改。徐码的简码设置原
则之一,是简码不占用全码汉字的编码,我基本遵循这个原则,字频表收录的 14000 余字
中,一字若无简码,则其全码不设置为其他字的简码。

举一个修改的例子:「没」「为」二字同为高频字且频率相近,「为」字设置了一级简码
`z`,而「没」字没有简码,其全码 `zqs` 指法很难,但是二简 `zq` 上又有高频字「学
」。所以最好的做法是将 `z` 让给「没」字,将中频字「沙」的二简 `zc` 让给「为」,
将低频字「娑」字的三简 `zcp` 让给「沙」。

另一例:「然」「得」二字同为高频字且频率相近,分别设置了简码 `sj` 和 `s`,改为
`s` 和 `sk` 则可空余出 `sj`,来分配给次高频字「周」。

以下仅列出一级简码单字的修改:

| 编码 | 修改前 | 修改前 | 修改后 | 修改后 |
| ---- | ------ | ------ | ------ | ------ |
| `a` | 出 `a aau` | 能 `asv` | 出 `aa aau` | 能 `a asv` |
| `h` | 在 `h hkjv` | 有 `hsv` | 在 `hk hkjv` | 有 `h hsv` |
| `m` | 同 `m mgov` | 见 `mve` | 同 `mg mgov` | 见 `m mve` |
| `n` | 国 `n neww` | 当 `nbu` | 国 `ne neww` | 当 `n nbu` |
| `z` | 为 `z zcl` | 没 `zqs` | 为 `zc zcl` | 没 `z zqs` |
| `s` | 得 `s skir` | 然 `sj sjsh` | 得 `sk skir` | 然 `s sjsh` |

单字简码不设重,仅有两个例外:「啊」为 `o` 的三选,「们」为 `t` 的三选。

随着本方案的更新,简码也可能发生新的修改,请知悉。

### 词组简码

词组简码只设一简和二简,都是两重,固定为次选和三选。对于二简词组,第一重的取码
为前两字的首码,第二重的取码为其理论全码的前两码。三字以上的词组,两种取码的结
果相同。该取码方式与官方码表相同,具体选词已经过全面修改。

### 二简置换码

这是一个旨在提高效率的设计,是本方案组中唯一对初学者不太友好的设计,请着重阅读并理解。

现已将大多数字根编码位设置为较高频字的二级简码,从而使二码字总体频
率提高 5.1 个百分点。坏处是二简字与成字字根重码,导致打该字根需要选重(在没有屏
蔽词组的情况下,是第四候选),如「`bg` 司 艮」「 `qs` 解 殳」「`tp` 作 片」等。
为此引入「置换码」来系统性地解决这个问题。举例说明,「司」原来的简码是 `bgo`,
现将它与「艮」的编码 `bg` 置换,即从「`bg` 艮」「`bgo` 司」变成「`bg` 司 艮」「
`bgo` 艮」,两字和以前一样无需选重。称 `bgo` 为「艮」的「字根扩展码」。又如,「
殳」的扩展码是「解」的全码 `qsdp`,「片」的扩展码是「作」的全码 `tpl` 。置换码
以规则的方式为成字字根设置特殊码,是一种「规则的不规则」,既解决了重码选字问题
,又无须强记,因为对应的二简字本身就是编码提示。

置换码的对象是根据字频数据精选的,以求变动小、效果大,目前包括约 50 个成字字根
。再次提醒,它们仍然可以使用原来的编码输入,只是需要选重,而字根扩展码是一个附
赠的无需选重的编码。

## 常见问题

**部署失败——主要方案未能识别**
答:目前已知一种情况:`v0.6.8` 及之前一段时间的版本的配置,强制引用基础配置文件
[`key_bindings.yaml`][] 文件,而这些文件在有的 Rime 发行版中或没有预置,或被删
除,或需要通过软件选项恢复(如同文)。其他情况:尝试重装 Rime 程序。尝试
[旧版发布][]。

[`key_bindings.yaml`]: https://github.com/rime/rime-prelude/blob/master/key_bindings.yaml
[旧版发布]: https://github.com/Ace-Who/rime-xuma/releases

**配置之后打不出汉字怎么办?**
答:尝试一次「重新部署」。重装 Rime 程序。尝试[旧版发布][]。

**为什么有些候选词显示为方块或空白?**
答:你使用的字体没有收取这个字。

**为什么不显示三重注解,无法屏蔽词组、显示时钟、后置全码单字?**
答:这几个功能是通过 lua 插件实现的,而一些 Rime 发行版不支持 lua 插件,有条件
可尝试更新。另参考 librime-lua 作者的[解释][lua's popularity]。可向发行版开发者
建议以推动实现对 librime-lua 的支持。同文的正式版不支持,测试版已支持。

[lua's popularity]: https://github.com/hchunhui/librime-lua/issues/22

**为什么安卓同文输入法不能反查?**
答:同文输入法官方版可能没有打包预置方案,而反查功能依赖[朙月拼音][]和
[五筆畫][]方案。可自行下载并重新部署。

[朙月拼音]: https://github.com/rime/rime-luna-pinyin
[五筆畫]: https://github.com/rime/rime-stroke

**为什么 `Ctrl+Shift+4` 等快捷键不起作用?**
答:部分快捷键不是直接在方案中定义,而是引用基础配置文件 [`default.yaml`][] 或
[`key_bindings.yaml`][] 的定义。而这些文件在有的 Rime 发行版中或没有预置,或被
删除,或需要通过软件选项恢复(如同文)。

[`default.yaml`]: https://github.com/rime/rime-prelude/blob/master/default.yaml
[`key_bindings.yaml`]: https://github.com/rime/rime-prelude/blob/master/key_bindings.yaml

**为什么输入 `/jt`、`/fh` 等不能打出符号?**
答:由斜杠「/」引导的符号定义在基础配置文件 [`symbols.yaml`][] 中。有的 Rime
发行版,没有打包这个文件或被删除,可自行下载或使用软件选项来恢复文件(如同文)
,并重新部署。

**如何删除用户词?**
答:删除特定用户词:输入该词编码,移动光标选中该词,敲删词键 Ctrl +
DeleteShift + Delete (Mac OS 用
Shift + Fn + Delete),默认还绑定了
Ctrl + K。删除整个用户词典:先退出输入法程序或算法服务,
然后删除用户目录下的 `xuma.userdb` 目录,再启动输入法。

**为什么码表更新后,有的字用新的编码打不出来?**
答:需要「重新部署」。

**为什么码表更新后,有的字还能用旧编码打出来?**
答:需要「重新部署」。如果以前用旧编码打过这个字,那么它还被记录在用户词典中,
即是一个用户词,可用删除用户词的方法删除之。

**我可以修改方案名称吗?**
答:方案名称由配置文件 `.schema.yaml` 的 `schema/name` 节点定义,可
自由修改,但除非懂得定制方法,不要修改 `schema_id` 或任何文件的名称或路径。

**`lua/ace/data/xuma_spelling.reverse.bin` 文件是什么?**
答:这是 v0.4 中预编译的三重注解词典,从 v0.5 起不再使用,可以删除。

**如何记忆字根?**
答:这个问题本来与本项目无关,但是我碰巧解决过,可以看[这里][Anki]。为方便初学
者,解决方案也打包在本项目中了。这是一个利用碎片时间即可在累计三小时内识记字根
的办法,如果你对于学习徐码的疑虑主要在于字根记忆的难度,那么不妨先花一个月时间
,每天三五分钟,在不知不觉中初步解决这个问题,再决定是否正式开始学习。

[Anki]: https://github.com/Ace-Who/rime-xuma/tree/master/misc/anki