Zhai Can
Zhai Can
这个问题是因为IME在composing状态时`KeyboardEvent.key`是`Process`。见 https://stackoverflow.com/a/73456231/11905139 我不知道Windows上这个key属性在输入法compose的时候是什么。反正为`Process`看起来是一种预期的结果。而`KeyboardEvent.code`属性不会因IME影响,所以我使用了它来判断选重。下游的修复可见https://github.com/bczhc/easy-typer/commit/1268ea2daf70ce811caae6234e4db58d8535c3c5
所有的BMP外的字符判定都有问题。比如“𪻐”字,会显示“共2字”。不应该使用UTF-16字符串的长度判定字数。
就是打文时有时打了个超集字,还以为打了个二字词,就回删,删多了。
以及文章中凡是有BMP外的字,乱序都出问题。比如来𪻐 -> �来�,那两个方框替代字符就是被拆开来的代理对。解决这个问题只需使用`Array.from(text)`或`[...text]`的方式,而不是`.split('')`来拆分。 - https://stackoverflow.com/questions/21397316/split-javascript-string-into-array-of-codepoints-taking-into-account-surrogat
呃其实感觉这个也不是个很需要的需求……只是偶然发现有这个问题。我也不是很在意那个侧栏的指标了。要看总跟打字数的话我可以用IndexedDB里抽数据来统计;如果确实没必要搞这个数据一致性的话,issue就关了吧。
首先那个反查用的pinyin_simp里没有“中华人民共和国”这个词,~~其次就算反查表里有,五笔表里没有,按反查逻辑也是不给出的,也不符合需求~~。单纯反查用的`reverse_lookup_translator`应该无法做到。 如果要拼音英文混输,一个想法是先建一个拼音+英文混输的方案,然后加个`affix_segmentor`,再给`recognizer`增加一个pattern,来指定以某某字符开始的输入,就临时进入那个拼音+英文混输的方案。 或者如果没有中英文混输的需求,把它们分开,比如设置以`|`开始就拼音输入,以`/`开始为英文输入,那直接增加俩`affix_segmentor`和`recognizer`就行了。
@plutotree 1的话,我这边差不多配置,试了是没问题的,你的配置贴完整下,engine里还有其他呢,是不是segmentors和processor少了或顺序错了什么的 2的话……其实我挺久没研究rime了,对rime本体并不很熟。不知Rime有没有,在指定Tag下才开启的key_binder,比如在`english` tag下,让Enter键变为空格键,那也就能解决。不过换我就拿`lua_processor了`,在有`english` tag下,跳过前缀上屏……只是说一下我可能的解法,应该是有其他方法的
1知道了,是大写前缀的问题,默认Rime有一个`uppercase`规则,它给捕获掉了,当输入了`Zclo`,匹配了`english`模式,但当输入`Zclo2`时匹配了`uppercase`模式,阻止了上屏。一个解决方法: ```diff punctuator: import_preset: default # import_preset: symbols @@ -123,6 +156,9 @@ recognizer: patterns: # punct: "^/([0-9]+[a-z]*|[a-z]+)$" # 注意前方需要有4个空格,跟下面对齐 reverse_lookup: "^z[a-z]*'?$" # 反查词条的正则 + uppercase: "" pinyin: '^\|[a-z'']*$' english: '^Z[a-zA-Z]*$'...
回车跳过前缀上屏用lua的改法,供参考 ```diff diff --git a/lua/processor_enter_skip_prefix.lua b/lua/processor_enter_skip_prefix.lua new file mode 100644 index 0000000..854f639 --- /dev/null +++ b/lua/processor_enter_skip_prefix.lua @@ -0,0 +1,34 @@ +_G.kRejected, _G.kAccepted, _G.kNoop = 0, 1, 2 + +local tags...
Bump. Is there any blocker for this issue? How can we expect this will be merged, just a polite ask.