我有一个小模式.如果该模式处于活动状态且用户命中DEL,我想执行一些操作,但仅限于某些条件成立.如果条件成立且执行了操作,我想在此之后不再做任何事情.但如果条件失败,我不想做任何事情,让默认的DEL动作执行.
不知道我怎么解决这个问题.但我想我可以用两种方式做到:
1) 我可以将DEL键重新绑定到次要模式中的函数,然后检查条件是否成立.但是,我怎么知道DEL的默认命令是什么?
2) 我可以像这样添加一个pre命令钩子.执行命令然后断开链.但是我该如何打破链条呢?
(add-hook 'pre-command-hook
(lambda()
(when (equal last-input-event 'backspace)
;; Do something and then stop (do not execute the
;; command that backspace is bound to)
)))
Run Code Online (Sandbox Code Playgroud)
你会以什么方式解决它?谢谢!