goumao
1102
是这样的,
你是从其它应用切回emacs后,
立刻就 i 进入 insert mode?
如果稍微延迟一下再 i 进入 insert mode,
是不是就没这个问题了?
emacs处理窗口焦点的切换(focus in事件)是有一个延迟的,
这样操作就导致:
- focus in之后恢复当前buffer的input source(因为离开前为normal状态,所以为english)
- 你进入insert mode切换input source(为rime)
这二者抢占了。
比较dirty但是直接的办法是,
你把下面这个函数在自己的配置文件中重新定义一下,让sis不要切换。
但是这块也不算是sis的bug,
sis对于焦点切换也只能做到这一步。
包治百病的用法就是切回emacs稍微等一下。
不过我又想到一点,
macos可以系统配置“自动切换到文稿的输入法”,
你如果配置了这个,
在使用GUI Emacs时,应该是不需要sis自己去恢复当前buffer的输入法的。
那就可以用空函数去覆盖上面那个函数了。
但是!!!
macos也会帮你主动地切输入法,就是不知道会不会也有延迟,导致同样的问题
不过sis针对的是一般情况:非MacOS系统,或没系统设置“自动切换到文稿的输入法”,或用的是Terminal Emacs等等。
2 个赞