iDvel/rime-ice

关于大写字母的问题

kingdream123 opened this issue · 7 comments

大佬们,麻烦看一下,是不是我配置的有问题。
现在是使用的小鹤双拼
比如要输入你好两个字,敲击字母nihc
再很早之前的版本,敲击字母nih时,候选词第一个就是你好了,
但是前两天更新完后,敲击字母nih
image
需要字母全部输入完整,候选词才不会混入英文字母
image

麻烦看一下,是什么原因导致的呢

iDvel commented

#332 的修改。

之前也支持输入大写字母,大写字母参与造句,比如「做个 DNA 检测」:
2023-06-15-000770

以前是这样实现的:

# 词库,将大写字母编码成特殊符号:
A	ā
B	ḃ
C	ç
……

# 方案,拼写规则:
    - xform/un$/Y/ # 这些大写字母作为搭桥用途了
    - xform/^sh/U/
    - xform/^ch/I/
    - xform/^zh/V/
    - xform/uo$/O/
    - xform/ie$/P/
    ……
    # 以大写字母搭桥
    - xlit/QWRTYUIOPSDFGHJKLZXCVBNM/qwrtyuiopsdfghjklzxcvbnm/
    # 为了能输入大写字母,需要在词库中将大写字母编码为特殊符号,再做转写
    - xlit/āḃçďēḟḡĥīĵḱĺḿńōṕɋŕśťūṽẃẋȳź/ABCDEFGHIJKLMNOPQRSTUVWXYZ/

#332 之后,直接用特殊字符搭桥,省去了转写:

# 词库:
A	A
B	B
C	C
……

# 方案,拼写规则
    - xform/un$/Ⓨ/ # 后面这几个 Ⓨ Ⓤ Ⓘ... 是特殊字符
    - xform/^sh/Ⓤ/
    - xform/^ch/Ⓘ/
    - xform/^zh/Ⓥ/
    - xform/uo$/Ⓞ/
    - xform/ie$/ⓟ/
    ……
    # 以特殊字符搭桥
    - xlit/ⓆⓌⓇⓉⓎⓊⒾⓄⓅⓈⒹⒻⒼⒽⒿⓀⓁⓏⓍⒸⓋⒷⓃⓂ/qwrtyuiopsdfghjklzxcvbnm/
    # 不再需要单独转写

大写字母放到了 rime_ice.dict.yaml 中,可按需启用或删除。

如果在用雾凇拼音的配置,需要更新一下拼写规则。
如果只在用词库,需要输入大写字母的功能,可以复制一下拼写规则;不需要这个功能,可以直接删除 rime_ice.dict.yaml 下面的大写字母。

非常感谢 大佬答疑 ~~

isahwn commented

#332 的修改。

之前也支持输入大写字母,大写字母参与造句,比如「做个 DNA 检测」: 2023-06-15-000770

以前是这样实现的:

# 词库,将大写字母编码成特殊符号:
A	ā
B	ḃ
C	ç
……

# 方案,拼写规则:
    - xform/un$/Y/ # 这些大写字母作为搭桥用途了
    - xform/^sh/U/
    - xform/^ch/I/
    - xform/^zh/V/
    - xform/uo$/O/
    - xform/ie$/P/
    ……
    # 以大写字母搭桥
    - xlit/QWRTYUIOPSDFGHJKLZXCVBNM/qwrtyuiopsdfghjklzxcvbnm/
    # 为了能输入大写字母,需要在词库中将大写字母编码为特殊符号,再做转写
    - xlit/āḃçďēḟḡĥīĵḱĺḿńōṕɋŕśťūṽẃẋȳź/ABCDEFGHIJKLMNOPQRSTUVWXYZ/

#332 之后,直接用特殊字符搭桥,省去了转写:

# 词库:
A	A
B	B
C	C
……

# 方案,拼写规则
    - xform/un$/ʏ/ # 后面这几个 ʏ ᴜ ɪ... 是特殊字符
    - xform/^sh/ᴜ/
    - xform/^ch/ɪ/
    - xform/^zh/ᴠ/
    - xform/uo$/ᴏ/
    - xform/ie$/ᴘ/
    ……
    # 以特殊字符搭桥
    - xlit/ǫᴡʀᴛʏᴜɪᴏᴘsᴅғɢʜᴊᴋʟᴢxᴄᴠʙɴᴍ/qwrtyuiopsdfghjklzxcvbnm/
    # 不再需要单独转写

大写字母放到了 rime_ice.dict.yaml 中,可按需启用或删除。

如果在用雾凇拼音的配置,需要更新一下拼写规则。 如果只在用词库,需要输入大写字母的功能,可以复制一下拼写规则;不需要这个功能,可以直接删除 rime_ice.dict.yaml 下面的大写字母。

@iDvel 请问下是如何做到中英文之间自动填充空格的呢?

iDvel commented

请问下是如何做到中英文之间自动填充空格的呢?

默认没开。

补丁示例:

# rime_ice.custom.yaml
patch:

  engine/filters:
    - simplifier@emoji
    - simplifier@traditionalize
    - lua_filter@v_filter
    - lua_filter@autocap_filter
    - lua_filter@cn_en_spacer  # 增加这行
    - lua_filter@reduce_english_filter
    - lua_filter@long_word_filter
    - uniquifier

  long_word_filter:
    count: 2
    idx: 4
weique commented

请问下是如何做到中英文之间自动填充空格的呢?

默认没开。

补丁示例:

# rime_ice.custom.yaml
patch:

  engine/filters:
    - simplifier@emoji
    - simplifier@traditionalize
    - lua_filter@v_filter
    - lua_filter@autocap_filter
    - lua_filter@cn_en_spacer  # 增加这行
    - lua_filter@reduce_english_filter
    - lua_filter@long_word_filter
    - uniquifier

  long_word_filter:
    count: 2
    idx: 4

为啥打了补丁却不起作用呢?这个是针对全拼还是双拼的?

iDvel commented

为啥打了补丁却不起作用呢?这个是针对全拼还是双拼的?

全拼双拼都支持,你把 engine/filters 下的选项都复制到补丁里,注意缩进,再在中间插入 - lua_filter@cn_en_spacer 这行。

weique commented

为啥打了补丁却不起作用呢?这个是针对全拼还是双拼的?

全拼双拼都支持,你把 engine/filters 下的选项都复制到补丁里,注意缩进,再在中间插入 - lua_filter@cn_en_spacer 这行。
搞明白了,用的双拼,但是把补丁打到全拼里面去了,怪不得不起作用。