不太明白call-interactively的用法. (call-interactively #'func)和直接(func)有啥区别吗?
前者会执行 interactive form 来填装参数,后者不会。当然本来就没参数的话,可能就一样了。Emacs 也能区分一个函数是不是用户直接执行的,还是从 Lisp 中掉用的(called-interactively-p
),call-interactively
用来模拟用户直接执行一个命令。比如 (emacs-version)
返回字符串,而 (call-interactively #'emacs-version)
会在 Echo area 中显示下,之后再返回字符串。
1 个赞