pyim 输入法下如何配合 key-chord 进行快速按键 执行函数,而不是pyim候选词

想要在 pyim 输入法下配合 key-chord

比如,当我在 pyim 下,快速按下 jk 键,它会执行某个函数,如果单单按个 j 键,pyim 将会弹出 候选词,不影响使用

因为我注意到,无论 pyim 选的是半角还是全角符号,key-chord 无效

你搜索一下 pyim 的 issue 吧,好像有同学以前提到过这个问题,还提出了一个解决方案

他的问题大概怎么描写的??有点难找

How to us evil-escape when I am input Chinese using pyim? · Issue #260 · tumashu/pyim · GitHub like this.

我研究研究,似乎还跟 pyim 的配置有关,我直接拿过来无法使用 :joy:

非常感谢 :innocent:

也可以用这个

虽然在emacs28里面有些函数名字要修改一下才能用,作者好像也是论坛中的道友。

输入法不用的/键(或其他不用的按键)可用来关闭输入法,关闭后可以执行其他函数。`

这是我最近的设置。

感谢,不过没有我想要的那么方便

似乎无效,太久没维护了

其实略加改动,在28里是可以用的

(require 'key-chord)

(defun rime--enable-key-chord-fun (orig key)
  (if (key-chord-lookup-key (vector 'key-chord key))
      (let ((result (key-chord-input-method key)))
        (if (eq (car result) 'key-chord)
            result
          (funcall orig key)))
    (funcall orig key)))

(advice-add 'pyim-input-method :around #'rime--enable-key-chord-fun)

上面的 advice 是为了在 emacs-rime 中使用 key-chord 写的,应该也适用于 pyim(以前测试过)

3 个赞

这个可能是一个更好的解决思路,如果可行的话

太感谢了,完全可行:grinning::pray:

有用,key-chord配合pyim可以进一步提升输入法体验:

(key-chord-define-global " j" 'pyim-convert-string-at-point)
(key-chord-define-global " k" 'pyim-convert-string-at-point)

您好,能分享一下emacs-rime的版本吗?

把 pyim 改成 rime

(advice-add 'rime-input-method :around #'rime--enable-key-chord-fun)

1 个赞