Skip to content
This repository has been archived by the owner on Sep 27, 2022. It is now read-only.

搜狗输入法在连接服务器命令时无法输入英文 #37

Open
mo2feng opened this issue Mar 14, 2022 · 33 comments
Open

搜狗输入法在连接服务器命令时无法输入英文 #37

mo2feng opened this issue Mar 14, 2022 · 33 comments

Comments

@mo2feng
Copy link

mo2feng commented Mar 14, 2022

如题,在苹果默认英文输入法可以输入英文,搜狗输入法中文模式下也可以正常输入.
搜狗输入法 按shift切换到输入英文模式的时候,是无法正常输入的

@Lakr233
Copy link
Owner

Lakr233 commented Mar 14, 2022

系统的 bug 我修不了哇

@ShikiSuen
Copy link

你测试一下别的输入法是否有这种现象。
最好连 macOS 内建的输入法也测试一下。
然后将测试结果贴到这边来,这样可以判断是否是 InputMethodKit 与 Rayon 的相容性问题、还是搜狗输入法与 Rayon 的相容性问题,方便接下来进一步找出问题来源归属方。

@Lakr233
Copy link
Owner

Lakr233 commented Mar 16, 2022

内建输入法目前没看到有问题

@ShikiSuen
Copy link

@Lakr233 那我先认为您是说 macOS 内建的中文输入法没问题。
我一开始看楼主说 macOS 预设的英文输入法,所以才问的。

刚刚测试了威注音的原生 CapsLock 英文模式,没发现这个问题。

楼主可以先启用 macOS 内建的「用 CapsLock 切换中英文输入法」的功能先凑合着。
我找时间用搜狗测试下看看。

P.S.:「用 Shift 切换中英文」不该是 macOS 输入法应有的设计。
包括业火输入法在内,很多陆产输入法都有这个设计。但不见得这个设计就一定是合理的。
我曾经尝试给威注音做这个功能,发现 Shift 这个 modifier 的释放判断比较难控制。
好歹做出来了,却发现在 Chromium 核心的浏览器内会同时在按键事件与释放事件都执行切换命令。
我们 macOS 应用研发者为什么一定要替 Windows 特有的使用习惯擦屁股呢?

@ShikiSuen
Copy link

@mofengme 请问您能将出现问题的程式介面撷图贴在这里吗?
我这边 Rayon 只显示英文,无法准确定位到您在遇到问题时的程式介面。

@mo2feng
Copy link
Author

mo2feng commented Mar 16, 2022

@ShikiSuen
这是默认中文输入的情况下,是可以直接回车键输入的
image
切换成英文输入的情况下,所有的英文字母都无法输入,数字和特殊符号可以正常输入
image

@ShikiSuen
Copy link

刚刚测试了搜狗 6.4.0.13474 版,系统是 Monterey,没遇到问题。
也可能是我还没定位到楼主遇到问题时的画面。

@mo2feng
Copy link
Author

mo2feng commented Mar 16, 2022

那我升级下搜狗版本试试
升级到最新版本也没有解决问题

测试过的输入法结果如下:

  • Apple 原生输入法 OK
  • 搜狗输入法 英文模式无法输入
  • 落格输入法 英文模式无法输入
  • 清歌输入法 OK

@ShikiSuen
Copy link

我这边成功重现了 mofengme 的问题。
不是在连接服务器时出现,而是在终端画面出现。
既然威注音输入法也出现了这个问题,那么问题应该算是目前 Rayon-Terminal 与 IMK 的相容性问题了。

RAYON-IMK-COMPATIBILITY-ISSUE.mp4

P.S.: @mofengme 恐怕你只能暂时启用这个选项了,毕竟有效:
使用大写锁定键来切换「美国」及目前输入方式
image

@ShikiSuen
Copy link

搜狗不开源。我说一下威注音的 CapsLock 模式:

其原理就是让 IMK 将输入的 charCode 与 KeyCode 原原本本地递交给当前正在接受文本输入的 app。

然而这些内容却被 Rayon 拒绝接收,且错误提示声是 Rayon 发出的(因为威注音的错误提示声音是放屁声)……
所以只能从 Rayon-Terminal 下手检查。

@ShikiSuen
Copy link

另外,搜狗 SHIFT+CMD+E (应该是这个热键) 的英文单词输入模式是可以输入英文的(但无法输入空格)。
原理是搜狗的英文单词输入模式利用了内文组字区、而 Rayon-Terminal 接受来自 IMK 内文组字区的文字输入。

@ShikiSuen
Copy link

要是清歌输入法开源的话,就好分析他那英文模式怎么处理的了。

@Lakr233
Copy link
Owner

Lakr233 commented Mar 16, 2022

所以只能从 Rayon-Terminal 下手检查。

目前 terminal 不是我在维护 可能要请 @Innei 来看一下 我比较菜。。。

@Innei
Copy link
Collaborator

Innei commented Mar 16, 2022

Refer to: xtermjs/xterm.js#3639

@Innei
Copy link
Collaborator

Innei commented Mar 16, 2022

根据上一个 Issue,并不能解决问题。添加 user-select: none 单个元素依旧不行,我测试是 所有元素增加 user-select: none,但是这样之后搜狗就不能输入中文了。但是可以输入英文

@ShikiSuen
Copy link

@Innei 那还是 xtermjs 对 imk 的相容性问题。

@childrentime
Copy link

额,我觉得不是要添加 user-select: none,我想说是试试消除这个

@childrentime
Copy link

将user-select 都设置为 auto 试试吧

@childrentime
Copy link

或者这个 -webkit-user-select: text

@R0uter
Copy link

R0uter commented Mar 17, 2022

那我升级下搜狗版本试试 升级到最新版本也没有解决问题

测试过的输入法结果如下:

  • Apple 原生输入法 OK
  • 搜狗输入法 英文模式无法输入
  • 落格输入法 英文模式无法输入
  • 清歌输入法 OK

奇怪,作为落格输入法的作者,我使用 落格输入法 macOS 3 是正常输入的
Screen Shot 2022-03-17 at 8 28 18 PM


好吧再补充一点,因为有用户反馈到我这来了嘛,我刚好也在用这个 App 🤓,有一点就是可能需要用鼠标额外点击一下 ssh 终端区域来切换焦点,App 的默认焦点并不在终端里,导致按啥都是“咚咚咚”。

@mo2feng
Copy link
Author

mo2feng commented Mar 17, 2022

那我升级下搜狗版本试试 升级到最新版本也没有解决问题
测试过的输入法结果如下:

  • Apple 原生输入法 OK
  • 搜狗输入法 英文模式无法输入
  • 落格输入法 英文模式无法输入
  • 清歌输入法 OK

奇怪,作为落格输入法的作者,我使用 落格输入法 macOS 3 是正常输入的 Screen Shot 2022-03-17 at 8 28 18 PM

  1. 中文输入模式下,直接回车是可以输入英文的,英文模式下不行
  2. 我只购买了落格输入法2,所以我是用版本2测试的。

@R0uter
Copy link

R0uter commented Mar 17, 2022

那我升级下搜狗版本试试 升级到最新版本也没有解决问题
测试过的输入法结果如下:

  • Apple 原生输入法 OK
  • 搜狗输入法 英文模式无法输入
  • 落格输入法 英文模式无法输入
  • 清歌输入法 OK

奇怪,作为落格输入法的作者,我使用 落格输入法 macOS 3 是正常输入的 Screen Shot 2022-03-17 at 8 28 18 PM

  1. 中文输入模式下,直接回车是可以输入英文的,英文模式下不行
  2. 我只购买了落格输入法2,所以我是用版本2测试的。

我切换到 2 测试了一下,也是正常的,你在切换到一个 Session 时,注意看提示符是空心还是实心,如果是空心,就点一下终端区域,焦点切换到这边就可以正常用落格输入法输入了,2 和 3 都是能输入的。不论中文还是英文。 :)

@mo2feng
Copy link
Author

mo2feng commented Mar 17, 2022

@R0uter
image
抱歉,我今天升级完系统之后在Rayon里面已经没办法切换到落格输入法了,所以没办法进一步测试了
image

@ShikiSuen
Copy link

搜狗的情况不清楚,但威注音的情况已经排查清楚了:
威注音的大写英文输入是直接 pass 过去的,Rayon 可正常接收。
威注音的小写英文输入需要做额外处理。v1.3.9b 版将会修正该问题。

@R0uter
Copy link

R0uter commented Mar 17, 2022

@R0uter image 抱歉,我今天升级完系统之后在Rayon里面已经没办法切换到落格输入法了,所以没办法进一步测试了 image

重启 Rayon,或者注销重新登录都可以解决,是系统 Bug,常见于更新系统或更新了落格输入法……😅具体为他他们的就都在,可能是因为只有落格输入法是纯 Swift 写的?——原因不明。

@ShikiSuen
Copy link

糟糕。CapsLock 英文模式直接 pass 过去的话,就无法输入小写字母了。

@mofengme 要不要考虑换个终端实现模组?
我估计这问题让输入法来做兼容的话反而太难。

@mo2feng
Copy link
Author

mo2feng commented Mar 17, 2022

@ShikiSuen Rayon 只是个我的备选项,我一般在 iterm用 封装的 shell 脚本

@Lakr233
Copy link
Owner

Lakr233 commented Mar 17, 2022

@ShikiSuen Rayon 只是个我的备选项,我一般用 iterm 封装的 shell 脚本

我这玩意设计之初也确实没打算做这么大。。。。。。。。。。。。。。。。。。。。。。。。。。
有一点超出我的维护/理解范围了。。。

@ShikiSuen
Copy link

@Innei 要不要考虑换个终端实现模组?
我估计这问题让输入法来做兼容的话反而太难。

(刚才圈错人了。)

@Lakr233
Copy link
Owner

Lakr233 commented Mar 17, 2022

@Innei 要不要考虑换个终端实现模组?

这个其实我在项目最开始的时候看过隔壁 SwiftTerm 上个原型版本用的就是他 但是后来感觉 xterm 项目比较大还有可能有人维护 就喊我的小伙伴做了个简单的实现

嘛 这几天我们也调研调研咯 我其实不太想换。。。

@ShikiSuen
Copy link

既然集中 apple 的平台,就少用跨廠商平台的產品。

@childrentime
Copy link

xterm确实有人维护,但是信号处理这块比较复杂吧,问题也不好复现,维护优先级太低了

@ShikiSuen
Copy link

GR2.1實測,威注音輸入法可正常在英數模式下輸入大小寫ASCII。

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

No branches or pull requests

6 participants