我知道有"C- \"来切换输入法,但是只允许一个额外的输入法 - 例如,默认情况下我有英文qwerty布局,我可以在它和dvorak之间交替.
但有没有办法在两种其他语言之间进行交替同样轻松?例如,如果我想替换english-dvorak和我的母语布局?
要快速切换2种或更多替代输入法,我已将以下代码添加到我的init.el:
;; Input method and key binding configuration.
(setq alternative-input-methods
'(("russian-computer" . [?\C-\\])
("chinese-py-punct" . [?\C-|])
("german-postfix" . [?\C-\M-|])))
(setq default-input-method
(caar alternative-input-methods))
(defun toggle-alternative-input-method (method &optional arg interactive)
(if arg
(toggle-input-method arg interactive)
(let ((previous-input-method current-input-method))
(when current-input-method
(deactivate-input-method))
(unless (and previous-input-method
(string= previous-input-method method))
(activate-input-method method)))))
(defun reload-alternative-input-methods ()
(dolist (config alternative-input-methods)
(let ((method (car config)))
(global-set-key (cdr config)
`(lambda (&optional arg interactive)
,(concat "Behaves similar to `toggle-input-method', but uses \""
method "\" instead of `default-input-method'")
(interactive "P\np")
(toggle-alternative-input-method ,method arg interactive))))))
(reload-alternative-input-methods)
Run Code Online (Sandbox Code Playgroud)
因此,切换到我使用的俄语,中文或德语IME C-\,C-|并C-M-|据此.然后切换回英语我使用与当前IME相同的键(即如果我有中文IME激活,我将切换回使用C-|).
配置使用alternative-input-methods变量.它是输入方法名称和键绑定的汇总列表.
注意!如果您通过调用M-x toggle-input-method或按激活IME C-u C-\,按下C-\将根据alternative-input-methods变量切换到输入方法(在默认配置中,Emacs会记住新的IME并将其用于C-\).