特殊形式 interactive 将 Lisp 函数转变为命令。
interactive 形式必须位于函数体的顶层,通常作为函数体中的第一个形式;
这对 lambda 表达式(see Lambda 表达式)和 defun 形式(see 定义函数)均适用。
该形式在函数实际执行期间不做任何操作;它的存在只是一个标记,
告诉 Emacs 命令循环该函数可以被交互式调用。
interactive 形式的参数指定交互式调用时应如何读取参数。
另外,也可以在函数符号的 interactive-form 属性中指定 interactive 形式。
该属性的非 nil 值优先级高于函数体本身中的任何 interactive 形式。
此特性很少使用。
有时,某个函数仅用于交互式调用,从不从 Lisp 中直接调用。
在这种情况下,可以直接或通过 declare(see declare 形式)
为函数设置非 nil 的 interactive-only 属性。
如果该命令从 Lisp 中被调用,字节编译器会发出警告。
describe-function 的输出也会包含类似信息。
该属性的值可以是:
一个字符串,字节编译器会直接在警告中使用它(应以句号结尾,且不以大写字母开头,
例如 "use (system-name) instead.");
t;
或任何其他符号,该符号应是可在 Lisp 代码中使用的替代函数。
泛型函数(see 泛型函数)无法通过添加 interactive 形式转变为命令。