这个在 mac 用 29 我也遇到了
这块都删掉试试,sis自动检测和配置了,应该是不需要的。
got it.
我昨天用的包,是6月初下载的版本,必须添加这四行才能生效。
早上更新了包之后,删掉这四行也可以用
使用w32之后 还用配这个English吗 ,我这里怎么测试不成功? So the follow codes are not required actually. (sis-ism-lazyman-config nil nil 'w32) 需不需要增加?
请问下有办法设置 Shift 来切换输入法吗?之前用 im-select 的时候,我可以通过 AHK 映射,在 Emacs 中Shift 映射为 C-\ 来切换不同的输入法。
现在这个只是切换状态的话,由于在 Emacs 中 Shift 按键首先会被系统的输入法捕获了,直接就切换了输入法状态,所以就没法工作了。 或者有没有办法提高 AHK 的级别,让它高于系统输入法。
感觉使用w32后逻辑反而变得特别复杂了,minbuff里的切换也不正常
用 im-select.exe 的方案,我知道,是可以正常实现用 Shift 切换不同的键盘方案。 这个方案在 Windows 11 不好用,切换的时候,右边侧边栏会闪一下,可能是因为 Windows 11 该死的动画效果。
但目前这个通过 w32 API 切换的是中文输入法的中英文状态,这个时候就没法通过 AHK 实现在系统中和 Emacs 中都用 Shift 来切换同一个输入法的中英文状态。
- 在 Emacs 之外,Shift 没有做任何映射,直接就是切换当前输入法的中英文状态
- 在 Emacs 中,Shift 映射为 F9,F9 绑定到
sis-switch
这个函数,用于切换输入法状态。 - 但是在 Emacs 中按 Shift 的时候,会先执行了第一步,才轮到第二步。
有问题可以描述出来,也许作者可以解决。
应该给个w32的最简配置测试一下,需不需要设置额外英文输入法等? 也可能我用的系统太旧了win7,等我换系统的时候再用w32吧,im-select够我用了,懒得折腾了。
Windows 10 的话,目前不需要任何设置。作者已经写到 sis 里面了,如果使用的 Emacs 28 以上,自动就会用 w32-set-ime-open-status
来切换系统输入法的中英文状态。我这边使用下来一切正常。 Win7 没试过。
不做任何按键绑定的情况下
- 在Emacs之外,Shift直接切换当前输入法中英文状态
- 在Emacs中,按Shift也能切换输入法中英文状态
- 在启用sis时,中文输入的情况下,按空格键 w32 API 生效,自动切换到英文状态
完全做到了系统中和Emacs中的行为一致,为什么要用AHK?
刚才又尝试了一下,现在用 AHK 可以正常 Shift 切换输入法状态了。AHK 在 Emacs 中绑定到 F9 (sis-switch)。
至于为什么要通过 AHK 间接用 sis-switch
来手动切换,主要是因为通过输入法自身的 Shift 切换时,光标颜色是不会跟着变更的,因为 Emacs 不知道系统的输入法变了。
厉害了,我没有想过这个问题
w32模式好像不能保存每个buffer的中英文输入状态了
我这边是正常的,可以保存状态。我用的是 Rime (小狼毫),Windows 10 ,Emacs 29.0.50
win10中系统自带的微软拼音输入法是emacs的w32 IME api配合得最好的,切换了能看见状态栏中的输入法的中英文状态变化,Rime应该没实现部分api,所以不行。
Rime 确实不行,不知道什么原因。不知道是 Emacs 问题还是小狼毫的问题,直接用Shift切换中英文,都看不到状态栏的变化。所以我要靠光标颜色来判断当前的输入法状态