如何将特定的输入法设置为 emacs 特定的主要模式?

How to set a specific input method to emacs specific major-mode?

我使用的语言很少,我需要在 Emacs 中为特定的主模式设置特定的输入法。

我的意思是,为特定的主模式配置 "auto change" 输入法。

有什么办法吗?谢谢!

您可以为每个有问题的模式使用 MODE 挂钩,以在该模式下为缓冲区设置 default-input-method(用 C-\ 切换):

(add-hook 'emacs-lisp-mode-hook 'my-emacs-lisp-mode-hook)
(defun my-emacs-lisp-mode-hook ()
  "Custom behaviours for `emacs-lisp-mode'."
  (setq-local default-input-method "latin-1-prefix"))

或者继续自动激活输入法:

(add-hook 'emacs-lisp-mode-hook 'my-emacs-lisp-mode-hook)
(defun my-emacs-lisp-mode-hook ()
  "Custom behaviours for `emacs-lisp-mode'."
  (activate-input-method "latin-1-prefix"))

另见