[求助] 在调用interactive输入参数时,如何在中途取消时调用函数

我写了一个interactive的函数(我不太清楚应该叫啥)

(defun a (n)
  (interactive "nInput n: "))

我如果在调用a的时候,点击别的地方,取消了该输入,我应该如何检测到,并执行某一个函数。

步骤:

  1. interactive 不要带字符串, 不要让 interactive 来处理输入
  2. 用 read-string或completing-read 在代码中间处理输入
  3. 用 condition-case 配合 quit 来处理 Ctrl + G 探测, 示例代码: emacs-application-framework/eaf.el at dfaeb7f561692a4e3c2fa1dd2f94f1dad166d348 · emacs-eaf/emacs-application-framework · GitHub
2 个赞