functoreality / rime-flypy-zrmfast

Rime 输入法配置文件,小鹤双拼+自然快手/小鹤双形辅助码
GNU Lesser General Public License v3.0
114 stars 21 forks source link

关于设置模糊音,无法连续输入的问题 #5

Open LukeEdmond opened 1 year ago

LukeEdmond commented 1 year ago

在flypy_zrmfast.schema.yaml文件里 speller: algebra:

不知道加了这代码之后就不能连续输入了,比如输入tktk应该是打出来“听听”,加了代码之后候选框就没有候选词了。而且这加了之后好像也没有实现模糊音功能。请问作者这个是因为啥?

functoreality commented 1 year ago

改的是 luna_pinyin.custom.yaml 吗?这个项目的双拼是直接写进码表里的(反正形码部分必须改码表,干脆就把双拼也写进去了),原则上要实现双拼下的模糊音应该直接改 flypy_zrmfast.custom.yaml,比如添加 derive/^v/z/ 这样。(另外我不太清楚为什么会有候选词消失这个副作用,不知道会不会部署的过程中有报错之类。)

LukeEdmond commented 1 year ago

改的是 luna_pinyin.custom.yaml 吗?这个项目的双拼是直接写进码表里的(反正形码部分必须改码表,干脆就把双拼也写进去了),原则上要实现双拼下的模糊音应该直接改 flypy_zrmfast.custom.yaml,比如添加 derive/^v/z/ 这样。(另外我不太清楚为什么会有候选词消失这个副作用,不知道会不会部署的过程中有报错之类。)

修好了,加了下面得就好了,不过还有别的输入bug,可能我设计置有问题

Renkai commented 1 year ago

我也想要模糊音, 不过是前后鼻音的-_-, 有完整例子能分享吗.

functoreality commented 1 year ago

我也想要模糊音, 不过是前后鼻音的-_-, 有完整例子能分享吗.

试试在 flypy_zrmfast.custom.yaml 里加上这些?不用的行可以直接去掉

speller/algebra/+: 
  # - xform/[[]// ## 直接引导辅助码
  - derive/^(.)h/$1j/ ## ang 可以通过 an 打出
  - derive/^(.)g/$1f/ ## eng 可以通过 en 打出
  - derive/^([qtypdjlxbnm])k/$1f/ ## ing 可以通过 in 打出
  - derive/^(.)j/$1h/ ## an 可以通过 ang 打出
  - derive/^(.)f/$1g/ ## en 可以通过 eng 打出
  - derive/^(.)b/$1k/ ## in 可以通过 ing 打出

(针对小鹤双拼的版本,对全拼、自然码双拼适配的要另说)

Renkai commented 1 year ago

一样遇到了不能连续出字的bug, 可能要为了用这个输入法, 少触发bug, 苦练普通话了

functoreality commented 1 year ago

一样遇到了不能连续出字的bug, 可能要为了用这个输入法, 少触发bug, 苦练普通话了

感觉很奇怪,至少我这里加了上面这些东西之后似乎是正常的,比如敲 tktktbtb 候选里都能看见“听听”。 或许可以检查一下这些东西:1. 上面的内容是加到 flypy_zrmfast.custom.yamlpatch: 下面了,并且多缩进了两个空格(我上面给的示例没加这部分缩进),2. 文件里原来的“直接引导辅助码”没有打开,3. 部署的时候没有看到报错信息,4. 在 Rime 用户目录的 installation.yaml 下看看 rime_version 项的值是多少?我这里是 1.7.3,不确定是否是各版本的行为略有不同。

Renkai commented 1 year ago

我用的是自然码, 就是除了模糊音就只改了

 22   ##  改用自然码双拼;相关设置见 pinyin_switch.yaml,例如直接引导辅助码
 23   __include: pinyin_switch:/flypy2zrm

可能触发了什么测试没有覆盖的条件, 回头再研究研究. (当然过程中可能发现自己普通话其实还行的话就不研究了😆)

functoreality commented 1 year ago

我用的是自然码, 就是除了模糊音就只改了

 22   ##  改用自然码双拼;相关设置见 pinyin_switch.yaml,例如直接引导辅助码
 23   __include: pinyin_switch:/flypy2zrm

可能触发了什么测试没有覆盖的条件, 回头再研究研究. (当然过程中可能发现自己普通话其实还行的话就不研究了laughing)

如果是自然码的话,不要改 flypy_zrmfast.custom.yaml,而是进入 pinyin_switch.yaml,在 flypy2zrm: 下的 speller/algebra: 列表最后追加模糊音设置(直接按自然码的韵母,不是我上面给的小鹤的韵母)。

Renkai commented 1 year ago

在配置文件的几处位置试了试都不太行. 根据我读配置的结果, 全拼和自然码都是先转换成小鹤, 然后再做之后的处理? 可能这么做增加了小鹤之外的方案设置模糊音的复杂度.

请问你开发过程中用了下面的工具吗, 我想调试一下看看, 可是链接看起来已经失效了, 不知道从哪能弄到一个可用的工具. https://rime.im/blog/2013/08/28/spelling-algebra-debugger/

functoreality commented 1 year ago

在配置文件的几处位置试了试都不太行. 根据我读配置的结果, 全拼和自然码都是先转换成小鹤, 然后再做之后的处理? 可能这么做增加了小鹤之外的方案设置模糊音的复杂度.

请问你开发过程中用了下面的工具吗, 我想调试一下看看, 可是链接看起来已经失效了, 不知道从哪能弄到一个可用的工具. https://rime.im/blog/2013/08/28/spelling-algebra-debugger/

我这里编辑 pinyin_switch.yaml,在 flypy2zrm 下的 speller/algebra 的最后(必须是列表的最后)追加这两行,看起来是能生效的,in 和 ing 不再区分了:

- derive/^([^gkhvuirzcs])y/$1n/
- derive/^(.)n/$1y/

这个方案里实现全拼和自然码的支持,更准确的说法是把小鹤码表翻译成全拼/自然码,而不是把全拼/自然码翻译过来。另外我自己没用什么辅助工具,都是写了直接部署来测试。

Renkai commented 1 year ago

可以了, 之前应该是理解不对所以放的位置不对. 多谢!