Yaozhuwa / easy-typing-obsidian

This is a plugin of obsidian for users writing in an easy way.
501 stars 14 forks source link

部分文字重复问题 #196

Closed SongLier closed 7 months ago

SongLier commented 8 months ago

输入一些特定的文字 12月 就会变成 12 月月 还有一些其他的文字也会出现这些问题 自动重复这个字并且还会再添加一个空格 这个提过好久了,希望能得到解决 现在目前只有关闭中英文之间自动添加空格这个功能能临时解决,或者使用新版微软输入法 但是完全用不习惯,使用旧版输入法目前只有在这里会出现这种重复输入的情况

Yaozhuwa commented 8 months ago

这样,你打开插件设置的debug模式,然后打开obsidian控制台(ctrl+shift+I),在obsidian编辑器中复现这个bug,把控制台输出信息发上来我看看,看下能否解决~

PS:很久之前看过别人的调试信息,貌似解决不了,还有就是我手头没有出现bug的Windows电脑,所以一直没管~

SongLier commented 8 months ago

obsidian.md-1708004455736.log

Yaozhuwa commented 8 months ago

由于没有设备,我只能在代码层面尝试解决这个问题,无法实际测试,所以需要你反馈一下,我把我的测试版本放到这里,你需要下载后将其放到本地的插件的目录下 你的Ob库目录/.obsidian/easy-typing-obsidian/ 替换原来的 main.js

https://musetransfer.com/s/xs2fulewc 请点击链接获取《EasyTyping 测试版本》, 有效期至2月23日

此外,你上面的测试用例不全面,只是数字后输入一个中文字的情况,如果是两个呢,比如输入6月份呢,所以可能还有情况会出问题。

SongLier commented 8 months ago

非常感谢 我重新在之前的版本测试了一下,发现在输入完数字后输入文字在第一次选择文字的时候都会触发重复 如:依次输入:1-1-y-u-e-“空格”,就会触发“月”字重复,对应测试文字截图及日志: 原版.log 原版

无论之后输入任何文字,只要在输入完数字后第一次输入中文都会触发 如:依次输入:1-1-y-u-e-f-e-n-“空格”,也会触发“月份”重复,触发完一次重复后就不会再出现重复问题,对应测试文字截图及日志: 重复发生后的后续输入.log 重复发生后的后续输入

尝试候选时使用数字而不是空格,依次输入:1-1-y-u-e-f-e-n-“1”(文字候选为第一个),依旧出现重复问题,对应测试文字截图及日志: 原版+候选数字.log 原版+候选数字

测试版本替换使用后,没有再出现重复问题,先数字再文字功能正常,但是在先输入文字再输入数字,不会在文字和数字之间加入空格,对应测试文字截图及日志: 测试.log 测试

手动在“先文字再数字”情况下输入空格,对应测试文字截图及日志: 手动输入空格.log 手动输入空格

“先文字再数字不自动加入空格”的情况,在使用crtl+shift+s格式化全文后可以自动补回空格,对应测试日志: 格式化.log

虽然还有一点点小问题,非常感谢能得到解决,如果还需要哪些测试我可以继续提供

SongLier commented 8 months ago

看到其他人也提到过这个问题,我测试了一下其他情况,暂时发现符号和文字之间也同样存在这个重复问题 原版 具体表现为: 1、中文符号 - 文字:任何情况下使用中文符号都无问题 2、英文符号 - 文字:无问题 3、英文符号 - 文字1 - 符号 - 文字2:即再次重复输入符号和文字,文字1无问题,文字2重复 4、英文符号 - 文字1 - 符号 - 文字2 - 符号 - 文字3:文字1无问题,文字2、文字3都出现重复,后续重复操作都会出现文字重复问题 符号-词组.log 符号-词组

在上述出现文字重复问题的情况下,尝试了不同符号后的文字重复问题,发现有一些符号会触发重复,有一些不会触发重复,输入词组和文字没有区别,即文字重复的情况,输入词组或句子也同样会重复,无论一次性输入多长词组(甚至直接输入一句话) 符号-文字.log 符号-文字

测试版使用后均没有出现上述的重复问题

Yaozhuwa commented 8 months ago

非常感谢你详细的测试 👍

我上传了新的测试版本,你看下能否解决文字+数字不自动空格的问题~

https://musetransfer.com/s/zt5ijoiom 请点击链接获取《Easy-Typing 测试版本2》, 有效期至2月26日

SongLier commented 8 months ago

谢谢你,这个问题已经解决了 Snipaste_2024-02-19_15-12-54 经过半天的使用已经没有再出现问题,非常感谢

另外还发现一点点小bug,不过完全不影响了,这个bug就是在输入英文和数字的时候(见图片最后两行),如果直接使用英文输入法则完全没有问题,如果使用中文输入法的时候要输入英文,例如输入“hello”,我的习惯是不切换输入法,而是用中文输入法直接输入“hello”后回车,这样可以将这次输入的内容全部原封不动打入文档中,这种情况下就不会自动产生空格,而且回车也不会触发,只有格式化全文才会加上空格 以 ”88 hello 77 yes“ 举例 英文输入法输入:8-8-h-e-l-l-o-7-7-y-e-s 得到:88 hello 77 yes 中文输入法输入:8-8-h-e-l-l-o-回车-7-7-y-e-s-回车 得到:88hello 77yes 但是两者用全局格式化之后的一样的,所以这个特性也完全不影响使用,这个在无论是什么输入法都是这样 对应的示例和log: Snipaste_2024-02-19_15-26-28 obsidian.md-1708327593536.log

再次感谢,这个中文重复问题终于解决了~

Yaozhuwa commented 8 months ago

其实目前这个解决方法可能会导致之前支持的一些输入法出问题。。我还在测试。。

SongLier commented 8 months ago

可能这个实现方法不一定能兼容所有的输入法(不是很懂),如果不能完全兼容所有输入法的话我觉得可以添加一个兼容性的选项让我们能根据自己使用的输入法进行选择(?) 目前我日常使用暂时没有出现其他的问题,如果有新的改进也可以继续联系我测试,或者通知我关闭这个issue🙂

Yaozhuwa commented 8 months ago

另外还发现一点点小bug,不过完全不影响了,这个bug就是在输入英文和数字的时候(见图片最后两行),如果直接使用英文输入法则完全没有问题,如果使用中文输入法的时候要输入英文,例如输入“hello”,我的习惯是不切换输入法,而是用中文输入法直接输入“hello”后回车,这样可以将这次输入的内容全部原封不动打入文档中,这种情况下就不会自动产生空格,而且回车也不会触发,只有格式化全文才会加上空格 以 ”88 hello 77 yes“ 举例 英文输入法输入:8-8-h-e-l-l-o-7-7-y-e-s 得到:88 hello 77 yes 中文输入法输入:8-8-h-e-l-l-o-回车-7-7-y-e-s-回车 得到:88hello 77yes

我上传了新的测试版本,你看下能否解决这个问题,需要打开插件设置中如下实验性功能:

image

你可以尝试在中文输入法下用回车、Shift、空格三种方式输入hello 看看能不能和前面的数字空格,目前在我Mac上这三种方式都是可以自动空格的~

此外,这个版本和之前略有修改,所以也烦请再测试下中文后输入数字能否自动空格。

https://musetransfer.com/s/0ntt603mk 请点击链接获取《Easy-Typing 测试v3》, 有效期至2月27日

SongLier commented 7 months ago

经过测试已经完全没有问题了,重新测试过中文-英文,英文-中文,标点-中文,中文-标点,数字-英文,英文-数字均没有问题 中文输入法尝试了回车输入英文、候选英文单词时空格输入,shift输入都没有问题 测试 obsidian.md-1708398365890.log 非常感谢!

Yaozhuwa commented 7 months ago

v5.2.0 版本包含了对微软输入法的支持~

SongLier commented 7 months ago

非常感谢~!