之前没注意到 Emacs Mac Port 文档:(info "(emacs) Mac Functions")
,其中介绍了很多有用和有趣的信息,比如:环境变量、默认语言、按键、字体、颜色、执行脚本、获得偏好、切屏动画、输入法、标签栏。
一些关于输入法的 API:
-
(mac-input-source-list)
获得所有的输入法; -
(mac-input-source)
获得选中的输入法; -
(mac-select-input-source "com.apple.keylayout.US")
选中特定输入法(以「美国」为例)。
我在 Mac 键盘设置中设置了 C-SPC 切换中英文,下面是对应的 Emacs Lisp 实现:
(defun chunyang-switch-input-source ()
"在「简体拼音」和「美国」之间切换."
(interactive)
(let ((US "com.apple.keylayout.US")
(CN "com.apple.inputmethod.SCIM.ITABC"))
(pcase (mac-input-source)
((pred (string= US)) (mac-select-input-source CN))
((pred (string= CN)) (mac-select-input-source US)))))
如果你想在 C-x 之后或者进入 Minibuffer 之后自动切换到英文输入法,mac-auto-ascii-mode
已经实现了,只是它不会恢复之前的输入法。