如题.
emacs 版本为 emacs-mac. 除此之外我有尝试 sis, 这个包可以解决中文输入法时按 C-x , C-c 等 prefix 的问题, 但是貌似无法解决 C-= 和 C-/ 的失效问题
补: 忘了说了 C-= 是 expand-region 包的快捷键, C-/ 我自己定义成其他东西了, 所以都不对应 emacs 自带的功能. 总之问题就是, 这类快捷键在 macOS 西文输入法下有效, 但是在中文输入法下无效. 无效(失效)的意思是, 没有任何行为, 在 echo area 中也没有任何信息, 就好像啥都没按过一样. 如果我用在 macOS 中文输入法下用 describe-key C-h k C-=
, 也没有任何响应, 即使按了 C-=
, minibuffer 中依然在等输入
C-\
的函数是 toggle-input-method , 只能用于切换 Emacs 内置的输入法,它是管不到 Mac 系统的输入法的。你可以使用 Karabiner 模拟按键来实现你需要的任意按键切换。
你可以试试社区大佬开发的 pyim 和 emacs-rime ,这两个可以直接用 C-\
切换了。
(push "<C-=>" sis-prefix-override-keys)
(push "<C-/>" sis-prefix-override-keys)
这样试试?
失效就是完全没有任何作用, 没有任何行为, echo area 也没有任何信息
我在 Mac ,Linux 和 Windows 都是使用的 Emacs-rime,系统上的输入法也是用的 rime ,这样就可以使得我在任何系统以及Emacs 下的输入体验是一样的,不一样的只是UI的显示。
Emacs-rime 在 Mac 上的安装也很方便,看下官方文档就可以了。
也可以参考我的配置,在这个文章末尾
这个方案主要上手难度是要熟悉 rime 这个开源输入法。