複数の言語でテキストを書き、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)
私が見つけられないように見えるのは、オペレーティングシステムにキーを送信する(または別の方法でシステム言語を変更する)関数呼び出しです。