怎么对单按键及组合键在不覆盖原功能添加自己写的函数

怎么对单按键及组合键在不覆盖原功能添加自己写的函数

而且 Normal Insert … 模式均不覆盖原功能添加

且是大量键添加

自己使用的是 Doom

添加功能指的是在原功能完成前或完成后做一些其他的工作,还是说完全替换掉原功能?

如果是我上面说的那些的话,用 advice

能给一些原功能完成前或完成后例子吗

玩具例子:

(defun my-insert-advice (ls)
  (if (cadr ls) (list (car ls) (1+ (cadr ls)))
    ls))

(advice-add 'self-insert-command :filter-args
	    'my-insert-advice)

输入 a 得到 b,输入 b 得到 c 。。。。。。

还有更多的添加选项可以使用,比如调用前做事(:before),调用后做事(:after)等等。

(defun my-insert-advice-2 (n &optional c)
  (when  c (insert c)))

(advice-add 'self-insert-command :before 'my-insert-advice-2)

在插入字符的前面多插入一个相同字符,输入 a 得到 aa,输入 b 得到 bb。。。。。。

1 个赞