key-echo: 单按修饰键来触发Emacs命令

我这里是同样的情况。最近某次系统升级后出现的问题。

猫大,我发现启用了key-echo,有些命令会延迟,比如 按下 C-h 他就会比平常慢

是Windows系统吗?

mac 系统

这个不清楚呀, Linux下是实时的, 我不用 mac 系统。

以下是我的配置,在ubuntu22.04上好用,如果配置了 (key-echo-enable),会同时启动两个进程,按一次shift键会触发两次,导致输入法开启了,然后又马上关闭了,因此无效。我这里是这样的情况(另外一台centos7上也是同样的原因)

(when (eq system-type 'gnu/linux)
  (require 'key-echo)
  ;; (key-echo-enable) ;不要调这个会导致key-echo-start-process被调用两次

  (defun my-shift-toggle()
    (require 'rime)
    (require 'pyim)
    (if (string-equal current-input-method "rime")
        (rime-inline-ascii);临时切换英文
      (toggle-input-method)))
  (defun key-echo-shift-to-switch-input-method (key)
    (interactive)
    (require 'rime)
    ;; (message "key input:%s" key)
    (cond
     ;; ((string-equal key "Key.shift_r") (pyim-toggle-input-ascii));先打开输入法再支持用shift切换,以免英文模式下误触
     ((string-equal key "Key.shift_r") (save-buffer))
     ;; ((string-equal key "Key.shift") (my-shift-toggle))
     ((string-equal key "Key.shift") (toggle-input-method))
     ))

  (setq key-echo-single-key-trigger-func 'key-echo-shift-to-switch-input-method)
  )