Как вы знаете, если вы пишете текст на нескольких языках и используете Emacs, Emacs имеет собственную систему входных методов, не зависящую от Windows (или других операционных систем). Методы ввода могут переключаться с помощью команды toggle-input-method
. Когда язык Windows изменяется, Emacs получает нажатие клавиши <language-change>
. Я хотел бы затем связать <language-change>
с toggle-input-method
. К сожалению, если у меня есть толькоОтправка нажатия клавиши операционной системе в EmacsW32
(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)
То, что я не могу найти это функция вызова, которая будет посылать ключ к операционной системе (или изменить язык системы по-другому).