Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

能否实现连续辅助码选字 #4

Open
lyslys888 opened this issue Aug 6, 2022 · 28 comments
Open

能否实现连续辅助码选字 #4

lyslys888 opened this issue Aug 6, 2022 · 28 comments

Comments

@lyslys888
Copy link

就是比如输入一个词的双拼后,不用回退光标到第一个字,按tab,输入的辅助码就是用来筛选第一个字的,按空格输入第一个字后,再继续输入的辅助码自动就是筛选第二个字的,依次类推,直到选完所有的字输入完成

@lyslys888
Copy link
Author

当然现在已经非常牛了,先赞一个。
另外就是不知为何,ab拆字模式在我的安卓手机上不可用,输入ab后没有提示部件组字模式,也无法进行拆字输入。但是在ipad上就可以

@functoreality
Copy link
Owner

functoreality commented Aug 6, 2022

关于写完双拼后追加辅助码,目前能实现的方案是用 Tab 逐个追加。比如想输入“林纳斯”,可以敲 lbnasi<Tab>a<Tab>s<Tab>q
打开 flypy_zrmfast.custom.yaml,在 key_binder/bindings/+: 下追加这一行(注意缩进):

- { when: composing, accept: Tab, send_sequence: '{Right}{Right}{Shift+Left}{Right}{Right}[' }

第二个问题,我的安卓设备上 ab 拆字能正常工作,现在也不太好判断你的问题可能出在哪。或许可以试试重新部署?不行的话,检查一下方案的 schema 和 custom 文件,有没有和拆字有关的修改?

@lyslys888
Copy link
Author

关于写完双拼后追加辅助码,目前能实现的方案是用 Tab 逐个追加。比如想输入“林纳斯”,可以敲 lbnasi<Tab>a<Tab>s<Tab>q。 打开 flypy_zrmfast.custom.yaml,在 key_binder/bindings/+: 下追加这一行(注意缩进):

- { when: composing, accept: Tab, send_sequence: '{Right}{Right}{Shift+Left}{Right}{Right}[' }

第二个问题,我的安卓设备上 ab 拆字能正常工作,现在也不太好判断你的问题可能出在哪。或许可以试试重新部署?不行的话,检查一下方案的 schema 和 custom 文件,有没有和拆字有关的修改?

谢谢详细解答,第二个问题看来是个例问题,我再排查排查,再次感谢

@lyslys888
Copy link
Author

lyslys888 commented Aug 7, 2022

关于写完双拼后追加辅助码,目前能实现的方案是用 Tab 逐个追加。比如想输入“林纳斯”,可以敲 lbnasi<Tab>a<Tab>s<Tab>q。 打开 flypy_zrmfast.custom.yaml,在 key_binder/bindings/+: 下追加这一行(注意缩进):

- { when: composing, accept: Tab, send_sequence: '{Right}{Right}{Shift+Left}{Right}{Right}[' }

第二个问题,我的安卓设备上 ab 拆字能正常工作,现在也不太好判断你的问题可能出在哪。或许可以试试重新部署?不行的话,检查一下方案的 schema 和 custom 文件,有没有和拆字有关的修改?

还是有问题,以 输入“林纳斯” 来说,输入 lbnasi ,再输入 Tab a后,光标并不是停在lb后面,而是停在了na后面,不知啥情况,我是安卓上试验的
,如果输入史诗uiui来说,输入uiui,再输入 Tab k 光标也不是在第一个ui后面,而是在第二个ui后面,总之就是感觉这个功能还是有些bug,对于输入辅助码时,光标位置的控制还有些问题
再次感谢

@functoreality
Copy link
Owner

以 输入“林纳斯” 来说,输入 lbnasi ,再输入 Tab a后,光标并不是停在lb后面,而是停在了na后面

找到原因了。电脑版 Rime 默认是 ←→ 键移动光标,↑↓ 键移动候选,用 PageUp,PageDown 翻页。Trime 考虑到手机上候选是横排显示而非竖排显示,就改成了默认 ←→ 键移动候选,↑↓ 和 PageUp,PageDown 都用来翻页,移动光标就不太容易了。
将 Trime 方向键功能改成和电脑版一致可以解决这个问题。在 trime.custom.yaml 里加上这一句:

style/horizontal: false

或者如果不嫌麻烦的话,也可以在第一次按 Tab 之前先按 HomeControl+a(Trime 默认的虚拟键盘中长按 a 也行)把光标移动到开头。

@lyslys888
Copy link
Author

以 输入“林纳斯” 来说,输入 lbnasi ,再输入 Tab a后,光标并不是停在lb后面,而是停在了na后面

找到原因了。电脑版 Rime 默认是 ←→ 键移动光标,↑↓ 键移动候选,用 PageUp,PageDown 翻页。Trime 考虑到手机上候选是横排显示而非竖排显示,就改成了默认 ←→ 键移动候选,↑↓ 和 PageUp,PageDown 都用来翻页,移动光标就不太容易了。 将 Trime 方向键功能改成和电脑版一致可以解决这个问题。在 trime.custom.yaml 里加上这一句:

style/horizontal: false

或者如果不嫌麻烦的话,也可以在第一次按 Tab 之前先按 HomeControl+a(Trime 默认的虚拟键盘中长按 a 也行)把光标移动到开头。

厉害,就是这个问题,非常感谢

@lyslys888
Copy link
Author

以 输入“林纳斯” 来说,输入 lbnasi ,再输入 Tab a后,光标并不是停在lb后面,而是停在了na后面

找到原因了。电脑版 Rime 默认是 ←→ 键移动光标,↑↓ 键移动候选,用 PageUp,PageDown 翻页。Trime 考虑到手机上候选是横排显示而非竖排显示,就改成了默认 ←→ 键移动候选,↑↓ 和 PageUp,PageDown 都用来翻页,移动光标就不太容易了。 将 Trime 方向键功能改成和电脑版一致可以解决这个问题。在 trime.custom.yaml 里加上这一句:

style/horizontal: false

或者如果不嫌麻烦的话,也可以在第一次按 Tab 之前先按 HomeControl+a(Trime 默认的虚拟键盘中长按 a 也行)把光标移动到开头。

另外,顺便请教下,IOS版同文输入法,是不支持输入候选时进行移动光标么,谢谢

@functoreality
Copy link
Owner

IOS版同文输入法,是不支持输入候选时进行移动光标么

手头上没有 iOS 设备,所以这个问题我也不太清楚。记得 iOS 系统的 Rime 前端好像叫 iRime 而不是同文?如果虚拟键盘有相应按键,或者系统允许第三方输入法使用外接键盘的话,也许可以直接试试输入候选的时候按一下方向键,看看效果如何。
如果只是说这个补充辅助码的功能的话,可能需要检查一下软件的后端是否是 librime 1.6.0 或以上版本(版本号在用户目录 installation.yaml 文件的 rime_version 项可以看到),send_sequence 命令好像是在这个版本中正式引入的。部分 1.5.3 版本可能也支持这个功能,再老的估计就不行了。

@lyslys888
Copy link
Author

IOS版同文输入法,是不支持输入候选时进行移动光标么

手头上没有 iOS 设备,所以这个问题我也不太清楚。记得 iOS 系统的 Rime 前端好像叫 iRime 而不是同文?如果虚拟键盘有相应按键,或者系统允许第三方输入法使用外接键盘的话,也许可以直接试试输入候选的时候按一下方向键,看看效果如何。 如果只是说这个补充辅助码的功能的话,可能需要检查一下软件的后端是否是 librime 1.6.0 或以上版本(版本号在用户目录 installation.yaml 文件的 rime_version 项可以看到),send_sequence 命令好像是在这个版本中正式引入的。部分 1.5.3 版本可能也支持这个功能,再老的估计就不行了。

谢谢

@lyslys888
Copy link
Author

又发现一个电脑端小狼毫的问题,辅助码用的小鹤的,我想打母胎单身,输入mutddjuf 发现没有这个词,
然后输入tab开始过滤,
第一个TAB: 定位到mu后面,输入v选择母
第二个TAB:此时光标并没有定位到td后面,而是定位到了tdd后面,不知道是什么原因
我在安卓手机rime上一样的配置是正常的,第二个TAB会定位到td后面

@lyslys888
Copy link
Author

@functoreality

@functoreality
Copy link
Owner

这种情况感觉有点奇怪,我手上没有 Windows 设备所以也没测试,至少在 Linux 和安卓设备上都是正常的。要不试试不是敲 Tab,而是手动接连按这些按键 {Right}{Right}{Shift+Left}{Right}{Right}[(在 flypy_zrmfast.custom.yaml 里可以看到实际上 Tab 键的功能就是通过模拟这串按键序列来实现的),看看光标会怎么移动?

@lyslys888
Copy link
Author

这种情况感觉有点奇怪,我手上没有 Windows 设备所以也没测试,至少在 Linux 和安卓设备上都是正常的。要不试试不是敲 Tab,而是手动接连按这些按键 {Right}{Right}{Shift+Left}{Right}{Right}[(在 flypy_zrmfast.custom.yaml 里可以看到实际上 Tab 键的功能就是通过模拟这串按键序列来实现的),看看光标会怎么移动?

我发现是直接辅助码的问题,我把直接辅助码关闭,可以正确定位光标 了。
但是又有个问题,输入mutddjuf ,按TAB,会定位到mu后,但是还需要手动输入[ ,然后 再输入V,才会过滤出母

@functoreality
Copy link
Owner

但是又有个问题,输入mutddjuf ,按TAB,会定位到mu后,但是还需要手动输入[ ,然后 再输入V,才会过滤出母

出现这种情况也比较奇怪,可以看一下 flypy_zrmfast.custom.yaml 里追加辅助码按键序列的定义,最后有没有补上 [?或者重新部署一下,有没有报错什么的?
(另外仓库里追加辅助码默认对应的是 ` 而不是 Tab,如果你是按的仓库内容更新了 Rime 设置的话可以看一下是不是这里的问题)

@xzzdys
Copy link

xzzdys commented Dec 13, 2022

我也遇到了相似的问题,我在 flypy_zrmfast.custom.yaml 中设定的是 - { when: composing, accept: Tab, send_sequence: '{Right}{Right}{Shift+Left}{Right}{Right}[' } ,结果是按Tab键后只会跳转到对应位置而不会自动输入[
直接按这一系列按键是 可以的
我使用的是windows,自然码双拼,我还试图把这行映射copy到flypy2zrm,也无效
不知道前面的有没有解决

@xzzdys
Copy link

xzzdys commented Dec 13, 2022

我看到了您在贴吧的回复,说如果rime核心版本小于1.6可能有问题,就去看了自己的版本是1.5.3,这大概就是问题所在了。
但是我是从小狼毫的官网下载的,最新版就是这个内核,官网的更新日志最后一次更新已经是19年了。。。
新版的官方下载渠道是在哪里啊?

还有一个小问题,latex模式有没有完整的输入表可以查询呢?

@functoreality
Copy link
Owner

我看到了您在贴吧的回复,说如果rime核心版本小于1.6可能有问题,就去看了自己的版本是1.5.3,这大概就是问题所在了。 但是我是从小狼毫的官网下载的,最新版就是这个内核,官网的更新日志最后一次更新已经是19年了。。。 新版的官方下载渠道是在哪里啊?

还有一个小问题,latex模式有没有完整的输入表可以查询呢?

我自己几乎不用 Windows,librime 版本问题也没有试着自己解决过。不过看别人写的 这篇介绍 里面是这么说的,也许可以试试:

小狼毫主版本长年未更新,使用 rime 输入法的核心库 librime 替换小狼毫程序文件夹中的 rime.dll 可更新输入法。如果输入法中使用了 Rime.lua 的动态输出功能,与核心库可能会冲突,不要更换 rime.dll。

不过按它的说法不排除这样升级会影响 LaTeX 输入功能,如果发现影响了那或许就先把 dll 文件换回来,之后再找找有没有其他办法吧。

至于 LaTeX 的输入表可以直接在 rime.lua 里看到。本来我也没指望自己预设的这些映射对所有人都适用,实际使用中应该是需要改成符合自己习惯的版本的,所以干脆直接让用户看代码了,代码应该也不难理解。

@h3lp404
Copy link

h3lp404 commented Mar 25, 2023

相同的配置,这个问题在IOS端Irime是正常的,win端dev0.14.3.99版本也是正常的,唯独在mac端有问题,版本是最新的0.16.2,直接辅助码关了也不行😂

@functoreality
Copy link
Owner

相同的配置,这个问题在IOS端Irime是正常的,win端dev0.14.3.99版本也是正常的,唯独在mac端有问题,版本是最新的0.16.2,直接辅助码关了也不行joy

你说的问题,具体有什么表现呢?比如,如果手动按 {Right}{Right}{Shift+Left}{Right}{Right} 这一串按键,光标能否移动到相应的位置?
原来的 Rime 是用左右键移动光标,上下键移动候选;据我从其他人那里听到的消息,最近更新的 Mac 版本可能改成了用左右键移动候选,没有能直接移动光标的键了。可以看看是不是这里的问题。
如果是的话,我不太清楚新的鼠须管有没有提供设置项,允许把方向键的功能改回来(我似乎没有在更新的文档里找到这部分的内容)。要是没有这个设置项,那这个问题可能还暂时不太好解决。

@h3lp404
Copy link

h3lp404 commented Mar 25, 2023

相同的配置,这个问题在IOS端Irime是正常的,win端dev0.14.3.99版本也是正常的,唯独在mac端有问题,版本是最新的0.16.2,直接辅助码关了也不行joy

你说的问题,具体有什么表现呢?比如,如果手动按 {Right}{Right}{Shift+Left}{Right}{Right} 这一串按键,光标能否移动到相应的位置? 原来的 Rime 是用左右键移动光标,上下键移动候选;据我从其他人那里听到的消息,最近更新的 Mac 版本可能改成了用左右键移动候选,没有能直接移动光标的键了。可以看看是不是这里的问题。 如果是的话,我不太清楚新的鼠须管有没有提供设置项,允许把方向键的功能改回来(我似乎没有在更新的文档里找到这部分的内容)。要是没有这个设置项,那这个问题可能还暂时不太好解决。

方向键键是可以移动的,比如:我打wh bk bk,左方向键按一下就移动到wh后面了,右方向键只能移动一个字母,比如打wh bk bk(王冰冰)后先按左方向键光标回到wh 后面加了辅码what bk bk ,在按右方向键,现在光标在what b^k bk,第一个bk的中间。如果在第一次按左方向键后按tab,大多数情况正常回到位置,光标位置在what bk^ bk,在第一个bk后并插入[ 符号。
如果直接按tab键,有候选词(比如打wo ui uw[我是谁])的情况下,光标会不移动,会直接在最后插入辅码引导成 wo ui uw [ 这样的,如果没有候选词(比如wh bk bk),则光标会在第一个bk后面,不会出现在wh后面

@h3lp404
Copy link

h3lp404 commented Mar 25, 2023

相同的配置,这个问题在IOS端Irime是正常的,win端dev0.14.3.99版本也是正常的,唯独在mac端有问题,版本是最新的0.16.2,直接辅助码关了也不行joy

你说的问题,具体有什么表现呢?比如,如果手动按 {Right}{Right}{Shift+Left}{Right}{Right} 这一串按键,光标能否移动到相应的位置? 原来的 Rime 是用左右键移动光标,上下键移动候选;据我从其他人那里听到的消息,最近更新的 Mac 版本可能改成了用左右键移动候选,没有能直接移动光标的键了。可以看看是不是这里的问题。 如果是的话,我不太清楚新的鼠须管有没有提供设置项,允许把方向键的功能改回来(我似乎没有在更新的文档里找到这部分的内容)。要是没有这个设置项,那这个问题可能还暂时不太好解决。

加入style/horizontal: false这个就可以了😂,但是输入框就不能设置横版了

@h3lp404
Copy link

h3lp404 commented Mar 25, 2023

相同的配置,这个问题在IOS端Irime是正常的,win端dev0.14.3.99版本也是正常的,唯独在mac端有问题,版本是最新的0.16.2,直接辅助码关了也不行joy

你说的问题,具体有什么表现呢?比如,如果手动按 {Right}{Right}{Shift+Left}{Right}{Right} 这一串按键,光标能否移动到相应的位置? 原来的 Rime 是用左右键移动光标,上下键移动候选;据我从其他人那里听到的消息,最近更新的 Mac 版本可能改成了用左右键移动候选,没有能直接移动光标的键了。可以看看是不是这里的问题。 如果是的话,我不太清楚新的鼠须管有没有提供设置项,允许把方向键的功能改回来(我似乎没有在更新的文档里找到这部分的内容)。要是没有这个设置项,那这个问题可能还暂时不太好解决。

如果是横排显示(设置为style/horizontal: true),输入内容后,直接按Shift+Right(右方向键),就可以实现加辅助码的效果,请问下引导辅码tab键的那行代码可以修改吗?怎么改?我可以试下

@functoreality
Copy link
Owner

如果是横排显示(设置为style/horizontal: true),输入内容后,直接按Shift+Right(右方向键),就可以实现加辅助码的效果,请问下引导辅码tab键的那行代码可以修改吗?怎么改?我可以试下

如果可以的话,把原来的这行(不是引导辅码那行)

- { when: composing, accept: grave, send_sequence: '{Right}{Right}{Shift+Left}{Right}{Right}[' }

改成这样就行(如果要用 Tab 键就把 grave 改掉):

- { when: composing, accept: grave, send_sequence: '{Shift+Right}[' }

不过在我这里遇到的问题是,如果有三个字或更多,为第二个字加辅助码会出问题(第一个字是正常的)。不知道是不是改成横排显示以后 Rime 把这个问题解决了。

@h3lp404
Copy link

h3lp404 commented Mar 25, 2023

如果是横排显示(设置为style/horizontal: true),输入内容后,直接按Shift+Right(右方向键),就可以实现加辅助码的效果,请问下引导辅码tab键的那行代码可以修改吗?怎么改?我可以试下

如果可以的话,把原来的这行(不是引导辅码那行)

- { when: composing, accept: grave, send_sequence: '{Right}{Right}{Shift+Left}{Right}{Right}[' }

改成这样就行(如果要用 Tab 键就把 grave 改掉):

- { when: composing, accept: grave, send_sequence: '{Shift+Right}[' }

不过在我这里遇到的问题是,如果有三个字或更多,为第二个字加辅助码会出问题(第一个字是正常的)。不知道是不是改成横排显示以后 Rime 把这个问题解决了。

修改后确实是如你所说,如果是两个字,tab后是正常的可以输入辅码😂,如果是多于两个字,那第一个字是正常的,第二次tab光标就回到最后一个字了,中间的跳过了😂。难受啊,Rime没有修复,还有其他办法吗?

@functoreality
Copy link
Owner

修改后确实是如你所说,如果是两个字,tab后是正常的可以输入辅码joy,如果是多于两个字,那第一个字是正常的,第二次tab光标就回到最后一个字了,中间的跳过了joy。难受啊,Rime没有修复,还有其他办法吗?

可能只能放弃操作的一致性了,加第一个辅助码的时候得特殊处理才行。把刚才的内容改成下面这样:

- { when: composing, accept: grave, send_sequence: '{Right}{Right}[' }

用的时候,加第一个辅助码之前得先按 Control+a(或者 Home 也行,看哪个顺手)再按 grave。之后的字只需要按 grave。
如果嫌(第一个辅助码)按两次键麻烦的话,也可以自己定义一个键来打包这两次操作。比如,额外添加了下面这行配置以后,加第一个辅助码只需要按一次 Control+1(也可以自己改成其他的键):

- { when: composing, accept: Control+1, send_sequence: '{Home}{Right}{Right}[' }

@h3lp404
Copy link

h3lp404 commented Mar 25, 2023

修改后确实是如你所说,如果是两个字,tab后是正常的可以输入辅码joy,如果是多于两个字,那第一个字是正常的,第二次tab光标就回到最后一个字了,中间的跳过了joy。难受啊,Rime没有修复,还有其他办法吗?

可能只能放弃操作的一致性了,加第一个辅助码的时候得特殊处理才行。把刚才的内容改成下面这样:

- { when: composing, accept: grave, send_sequence: '{Right}{Right}[' }

用的时候,加第一个辅助码之前得先按 Control+a(或者 Home 也行,看哪个顺手)再按 grave。之后的字只需要按 grave。 如果嫌(第一个辅助码)按两次键麻烦的话,也可以自己定义一个键来打包这两次操作。比如,额外添加了下面这行配置以后,加第一个辅助码只需要按一次 Control+1(也可以自己改成其他的键):

- { when: composing, accept: Control+1, send_sequence: '{Home}{Right}{Right}[' }

好的,谢谢耐心解答,哈哈哈 ,我发现现在改为{Right}{Right}[ ,之后在第一个字输入辅码后,按空格确定第一个,在tab可以继续输入辅码,然后继续空格确定字,以此类推,就是每次都要空格确认,先用着吧,等一个解觉方案😂
希望在后续的版本中加入更多更能,比如;(分号)引导符号之类的,(输入分号后可以在每个按键上面分配特殊符号),比如;W 可以输出? ,这样的

@functoreality
Copy link
Owner

好的,谢谢耐心解答,哈哈哈 ,我发现现在改为{Right}{Right}[ ,之后在第一个字输入辅码后,按空格确定第一个,在tab可以继续输入辅码,然后继续空格确定字,以此类推,就是每次都要空格确认,先用着吧,等一个解觉方案joy 希望在后续的版本中加入更多更能,比如;(分号)引导符号之类的,(输入分号后可以在每个按键上面分配特殊符号),比如;W 可以输出? ,这样的

没太理解你说的分配特殊符号是个什么功能?Rime 的默认行为是按 /w 可以输入 ẃẁŵẇ 这些符号,按 /1 可以输入 一壹₁¹① 这些,不知道和你想要的功能是什么关系

@h3lp404
Copy link

h3lp404 commented Mar 25, 2023

好的,谢谢耐心解答,哈哈哈 ,我发现现在改为{Right}{Right}[ ,之后在第一个字输入辅码后,按空格确定第一个,在tab可以继续输入辅码,然后继续空格确定字,以此类推,就是每次都要空格确认,先用着吧,等一个解觉方案joy 希望在后续的版本中加入更多更能,比如;(分号)引导符号之类的,(输入分号后可以在每个按键上面分配特殊符号),比如;W 可以输出? ,这样的

没太理解你说的分配特殊符号是个什么功能?Rime 的默认行为是按 /w 可以输入 ẃẁŵẇ 这些符号,按 /1 可以输入 一壹₁¹① 这些,不知道和你想要的功能是什么关系

其实就是比较简单的一个功能,开源小鹤的一个功能(https://github.com/amorphobia/openfly/blob/main/openfly.fast.symbols.dict.yaml),这个,我不晓得要怎么挂上现在的方案,我还是喜欢你的方案,方便快捷,又不累,基本就是我理想的输入方式👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants