如果您用多种语言编写文本并使用 Emacs,您可能知道,Emacs 有自己独立于 Windows(或其他操作系统)的输入法系统。输入法可以用toggle-input-method
命令切换。当 Windows 语言改变时,Emacs 会收到一个<language-change>
按键。然后我想绑定<language-change>
到toggle-input-method
. 不幸的是,如果我这样做
(global-set-key (kbd "<language-change>") 'toggle-input-method)
Windows 语言和输入法都将被切换。所以我需要类似的东西
(defvar safe-language-change-flag nil)
(defun safe-language-change ()
(interactive)
(setq safe-language-change-flag (not safe-language-change-flag))
(when safe-language-change-flag
(toggle-input-method)
(send-key (kbd "<language-change>"))))
(global-set-key (kbd "<language-change>") 'safe-language-change)
我似乎找不到一个函数调用,它将向操作系统发送密钥(或以另一种方式更改系统语言)。