结合按键和输入法

结合按键和输入法

我希望能够同时使用key-chord 以及 输入法,例如rfc1345

目前我用的是

C-x RET C-M-\ rfc1234 RET

激活输入法。

M-x key-chord-mode RET M-x key-chord-mode RET (是的,两次)

重新激活键和弦。

这种切换相当麻烦。有没有什么办法可以同时激活它们?或者有没有更快速切换的方法?

答案1

以下代码对我有用(我没有写它,只是从其他来源获得 - 不记得在哪里)

我只是根据自己的需要做了一些调整……

(set-language-environment "UTF-8")
(setq default-input-method "portuguese-prefix")

(defvar use-default-input-method t)
(make-variable-buffer-local 'use-default-input-method)

(defun activate-default-input-method ()
  (interactive)
  (if use-default-input-method
      (progn
        (set-input-method default-input-method)
        (activate-input-method default-input-method))
    (inactivate-input-method))
  (key-chord-mode t))

(add-hook 'after-change-major-mode-hook 'activate-default-input-method)
(add-hook 'org-mode-hook 'activate-default-input-method)
(add-hook 'minibuffer-setup-hook 'activate-default-input-method)

(defun inactivate-default-input-method ()
  (setq use-default-input-method nil)
  (key-chord-mode t))

(add-hook 'c-mode-hook 'inactivate-default-input-method)

(activate-default-input-method)

在最后一行,您可以定义不使用默认输入法的钩子,但 key-chord-mode 也将被设置为开启。

答案2

有一个内置函数toggle-input-methodC-\默认绑定到,可以方便地从设置的输入法和键和弦支持中切换。

答案3

这个函数能实现你想要的功能吗:

(defun my-whatever ()
  (interactive)
  "Doc string goes here."
  (activate-input-method "rfc1234")
  (key-chord-mode nil)
  (key-chord-mode nil))

我不确定您绑定了什么C-M-\,但如果绑定了activate-input-method,我认为这相当于您按下的按键。

显然,您会将此功能绑定到您选择的键序列。

相关内容