搜狗输入法在连接服务器命令时无法输入英文
如题,在苹果默认英文输入法可以输入英文,搜狗输入法中文模式下也可以正常输入.
搜狗输入法 按shift切换到输入英文模式的时候,是无法正常输入的
系统的 bug 我修不了哇
你测试一下别的输入法是否有这种现象。 最好连 macOS 内建的输入法也测试一下。 然后将测试结果贴到这边来,这样可以判断是否是 InputMethodKit 与 Rayon 的相容性问题、还是搜狗输入法与 Rayon 的相容性问题,方便接下来进一步找出问题来源归属方。
内建输入法目前没看到有问题
@Lakr233 那我先认为您是说 macOS 内建的中文输入法没问题。 我一开始看楼主说 macOS 预设的英文输入法,所以才问的。
刚刚测试了威注音的原生 CapsLock 英文模式,没发现这个问题。
楼主可以先启用 macOS 内建的「用 CapsLock 切换中英文输入法」的功能先凑合着。 我找时间用搜狗测试下看看。
P.S.:「用 Shift 切换中英文」不该是 macOS 输入法应有的设计。 包括业火输入法在内,很多陆产输入法都有这个设计。但不见得这个设计就一定是合理的。 我曾经尝试给威注音做这个功能,发现 Shift 这个 modifier 的释放判断比较难控制。 好歹做出来了,却发现在 Chromium 核心的浏览器内会同时在按键事件与释放事件都执行切换命令。 我们 macOS 应用研发者为什么一定要替 Windows 特有的使用习惯擦屁股呢?
@mofengme 请问您能将出现问题的程式介面撷图贴在这里吗? 我这边 Rayon 只显示英文,无法准确定位到您在遇到问题时的程式介面。
@ShikiSuen
这是默认中文输入的情况下,是可以直接回车键输入的
切换成英文输入的情况下,所有的英文字母都无法输入,数字和特殊符号可以正常输入

刚刚测试了搜狗 6.4.0.13474 版,系统是 Monterey,没遇到问题。 也可能是我还没定位到楼主遇到问题时的画面。
那我升级下搜狗版本试试
升级到最新版本也没有解决问题
测试过的输入法结果如下:
- Apple 原生输入法 OK
- 搜狗输入法 英文模式无法输入
- 落格输入法 英文模式无法输入
- 清歌输入法 OK
我这边成功重现了 mofengme 的问题。 不是在连接服务器时出现,而是在终端画面出现。 既然威注音输入法也出现了这个问题,那么问题应该算是目前 Rayon-Terminal 与 IMK 的相容性问题了。
https://user-images.githubusercontent.com/3164826/158587993-32a8a82d-ec02-489f-9982-f5d89123625e.mp4
P.S.: @mofengme 恐怕你只能暂时启用这个选项了,毕竟有效:
「使用大写锁定键来切换「美国」及目前输入方式」

搜狗不开源。我说一下威注音的 CapsLock 模式:
其原理就是让 IMK 将输入的 charCode 与 KeyCode 原原本本地递交给当前正在接受文本输入的 app。
然而这些内容却被 Rayon 拒绝接收,且错误提示声是 Rayon 发出的(因为威注音的错误提示声音是放屁声)…… 所以只能从 Rayon-Terminal 下手检查。
另外,搜狗 SHIFT+CMD+E (应该是这个热键) 的英文单词输入模式是可以输入英文的(但无法输入空格)。 原理是搜狗的英文单词输入模式利用了内文组字区、而 Rayon-Terminal 接受来自 IMK 内文组字区的文字输入。
要是清歌输入法开源的话,就好分析他那英文模式怎么处理的了。
所以只能从 Rayon-Terminal 下手检查。
目前 terminal 不是我在维护 可能要请 @Innei 来看一下 我比较菜。。。
Refer to: https://github.com/xtermjs/xterm.js/issues/3639
根据上一个 Issue,并不能解决问题。添加 user-select: none 单个元素依旧不行,我测试是 所有元素增加 user-select: none,但是这样之后搜狗就不能输入中文了。但是可以输入英文
@Innei 那还是 xtermjs 对 imk 的相容性问题。
额,我觉得不是要添加 user-select: none,我想说是试试消除这个
将user-select 都设置为 auto 试试吧
或者这个 -webkit-user-select: text
~那我升级下搜狗版本试试~ 升级到最新版本也没有解决问题
测试过的输入法结果如下:
- Apple 原生输入法 OK
- 搜狗输入法 英文模式无法输入
- 落格输入法 英文模式无法输入
- 清歌输入法 OK
奇怪,作为落格输入法的作者,我使用 落格输入法 macOS 3 是正常输入的

好吧再补充一点,因为有用户反馈到我这来了嘛,我刚好也在用这个 App 🤓,有一点就是可能需要用鼠标额外点击一下 ssh 终端区域来切换焦点,App 的默认焦点并不在终端里,导致按啥都是“咚咚咚”。
~那我升级下搜狗版本试试~ 升级到最新版本也没有解决问题 测试过的输入法结果如下:
- Apple 原生输入法 OK
- 搜狗输入法 英文模式无法输入
- 落格输入法 英文模式无法输入
- 清歌输入法 OK
奇怪,作为落格输入法的作者,我使用 落格输入法 macOS 3 是正常输入的
- 中文输入模式下,直接回车是可以输入英文的,英文模式下不行
- 我只购买了落格输入法2,所以我是用版本2测试的。
~那我升级下搜狗版本试试~ 升级到最新版本也没有解决问题 测试过的输入法结果如下:
- Apple 原生输入法 OK
- 搜狗输入法 英文模式无法输入
- 落格输入法 英文模式无法输入
- 清歌输入法 OK
奇怪,作为落格输入法的作者,我使用 落格输入法 macOS 3 是正常输入的
- 中文输入模式下,直接回车是可以输入英文的,英文模式下不行
- 我只购买了落格输入法2,所以我是用版本2测试的。
我切换到 2 测试了一下,也是正常的,你在切换到一个 Session 时,注意看提示符是空心还是实心,如果是空心,就点一下终端区域,焦点切换到这边就可以正常用落格输入法输入了,2 和 3 都是能输入的。不论中文还是英文。 :)
@R0uter
抱歉,我今天升级完系统之后在Rayon里面已经没办法切换到落格输入法了,所以没办法进一步测试了

搜狗的情况不清楚,但威注音的情况已经排查清楚了: 威注音的大写英文输入是直接 pass 过去的,Rayon 可正常接收。 威注音的小写英文输入需要做额外处理。v1.3.9b 版将会修正该问题。
@R0uter
抱歉,我今天升级完系统之后在Rayon里面已经没办法切换到落格输入法了,所以没办法进一步测试了
重启 Rayon,或者注销重新登录都可以解决,是系统 Bug,常见于更新系统或更新了落格输入法……😅具体为他他们的就都在,可能是因为只有落格输入法是纯 Swift 写的?——原因不明。
糟糕。CapsLock 英文模式直接 pass 过去的话,就无法输入小写字母了。
@mofengme 要不要考虑换个终端实现模组? 我估计这问题让输入法来做兼容的话反而太难。
@ShikiSuen Rayon 只是个我的备选项,我一般在 iterm用 封装的 shell 脚本
@ShikiSuen Rayon 只是个我的备选项,我一般用 iterm 封装的 shell 脚本
我这玩意设计之初也确实没打算做这么大。。。。。。。。。。。。。。。。。。。。。。。。。。 有一点超出我的维护/理解范围了。。。
@Innei 要不要考虑换个终端实现模组? 我估计这问题让输入法来做兼容的话反而太难。
(刚才圈错人了。)
@Innei 要不要考虑换个终端实现模组?
这个其实我在项目最开始的时候看过隔壁 SwiftTerm 上个原型版本用的就是他 但是后来感觉 xterm 项目比较大还有可能有人维护 就喊我的小伙伴做了个简单的实现
嘛 这几天我们也调研调研咯 我其实不太想换。。。