rime / squirrel

【鼠鬚管】Rime for macOS
https://rime.im
GNU General Public License v3.0
4.6k stars 412 forks source link

在MacOS系统的Neovide编辑器中无法输入全角符号 #827

Open JianleiZhang opened 8 months ago

JianleiZhang commented 8 months ago

在其他软件输入全角符号正常,只有在Neovide里无法输入全角符号。

开启输入法,输入逗号。上屏可以看到是半角的。

293137857-9bbb774b-9c3d-4cd1-8130-b9065e02c055

但是如果输入完中文,比如"quan"后面直接输入逗号,上屏的是全角符号。

293137821-35d66fc5-a3be-4025-b5a2-6a1bd933d5e6

我不确认这是否是输入法的问题,还是Neovide的问题。先在这提交吧。

hetaozdh commented 8 months ago

情况类似,在Neovide下首先发现的,但是随后发现在终端环境下使用Vim和Neovim仍然无法输入全角标点。 在Vim和Neovim下均无法正常输入全角符号,例如输入“。”却显示为“.” 在Vim和Neovim使用的背景终端环境下可正常输入全角符号。 使用Mac自带的中文输入法可以正常输入

kola-web commented 7 months ago

在alacritty中也会出现类似错误,感觉他们有一个共同点,neovide和alacritty都是用rust编写的 但是在wezterm(rust编写的)中却没有类似错误

JianleiZhang commented 7 months ago

在alacritty中也会出现类似错误,感觉他们有一个共同点,neovide和alacritty都是用rust编写的 但是在wezterm(rust编写的)中却没有类似错误

已经让我改变用空格上屏的习惯了。

kola-web commented 7 months ago

792 有人处理这个问题了,但是官方没有合并呢

groverlynn commented 6 months ago

在alacritty中也会出现类似错误,感觉他们有一个共同点,neovide和alacritty都是用rust编写的 但是在wezterm(rust编写的)中却没有类似错误

應該和rust沒有關係,而是開發者完全不瞭解IMK的工作原理,自作聰明地增加了是否攔截鍵盤事件的判定,判定條件是IMK是否有inline buffer。rime/squirrel#792 加入了反劫持,已解決現有bug。但是説不定他們下個更新又會有新的抽風設定

ShikiSuen commented 6 months ago

@groverlynn 這怎麼聽著這麼像 MS Office 2011 Word? (就是說非得在內文組字區裡面顯示點什麼,否則 IMK 處理過(返回 true)的 NSEvent 也會被送給客體。)

groverlynn commented 6 months ago

@groverlynn 這怎麼聽著這麼像 MS Office 2011 Word? (就是說非得在內文組字區裡面顯示點什麼,否則 IMK 處理過(返回 true)的 NSEvent 也會被送給客體。)

是的,IMK處理完的直接被吃掉了。而且有正着吃(沒有inline buffer就吃掉)也有反着吃(有inline buffer就吃掉)以及邊吃邊吐(IMK處理結果和他們的處理結果一起出)

ShikiSuen commented 6 months ago

@groverlynn 感谢您提供的资讯。请问您方便举几个例子吗? 看来我得丰富一下威注音输入法的客体管理器对黑名单对象的分别处理方式了,居然有反着吃的。

ShikiSuen commented 6 months ago

@groverlynn 已經發現了一個可能在反著吃的:Visual Studio for mac。 (不是 VSCode,VSCode 的問題是內文組字區不能自動換行。)

epheien commented 2 months ago

在alacritty中也会出现类似错误,感觉他们有一个共同点,neovide和alacritty都是用rust编写的 但是在wezterm(rust编写的)中却没有类似错误

我在 neovide 和 alacritty 出现类似的同一个问题, 现象是, 我在 macOS 的拼音输入法选择中文使用半角标点符号, 结果是在拼音输入法下只能输入全角标点符号, 其他的 iterm2, kitty 都没有这个问题.

kola-web commented 2 months ago

感觉这个不是rime的问题,这个是alaritty的问题,我现在直接不用alacritty了,对我来说rime的vim_mode无法替代,但是alactitty可以用kitty替代

ShikiSuen commented 2 months ago

Alacritty 的问题要追溯到他们用到的某个 Rust 跨平台 UI 模组。 我针对那个模组提供了个修复 PR,但这个 PR 拖了实在太久才被通过。 而这时我已经全然忘记接下来在 Alacritty 里面该怎么继续修这个问题了,所以 Alacritty 的问题只能搁置。