怎样才能知道用 backspace 删除的上一个字符是什么? last-command-event
和 last-input-event
都只能看到是按了 backspace
而已,有没有办法知道被删除的字符呢?
有趣的问题,理论上不考虑evil时 emacs 的每种删除都可以通过 undo 来恢复,但某些删除并不添加字符到 kill-ring,还真没找到 undo 的信息能不能查看…… 目前只发现 undo-tree-visualize 能直观查看……但还没找到代码查看的方法,但可能是一个办法
如果是往前删除的话,可以用 (preceding-char)
,加在你调用删除的这个函数的 before advice
以我为例,DELETE 运行的是 paredit-backward-delete
(define-advice paredit-backward-delete (:before (&rest _) get-prev-char)
(message "%s" (preceding-char)))
反正每次调用都能得到之前的char,至于删不删就不知道了。。。。
1 个赞
需要知道它做什么呢?或者说你的实际需求是什么?
本来想添加一个复杂的判断条件,用来改善 scimax 中 company backend 的一些行为,现在看来不值得,条件太复杂了,收益很小。
感谢各位的回复