interactive

当使用 interactive 时, 可以使一个 lisp 函数变成一个可交互式调用的命令. 它的形式为

interactive arg-descriptor

arg-descriptor 参数标识及意义

为空 或 nil

表示该命令是通过无参数来调用的. 这会导致快速错误, 如果命令要求一个或多个参数的话.

为字符串

该字符串的内容是通过换行符来分割的元素序列(sequence), 每一行一个参数.

每一个元素都是由一个代码字符 以及可选的提示字符组成的.

例如

(interactive "P\nbFrobnicate buffer: ")

代码字符 P 设置为原始命令前缀的第一个参数.

bFrobnicate buffer: 提示用户语为 Frobnicate buffer: 来输入一个存在的 buffer , 它会传递到命令的第二个参数, 也就是最后一个参数.

提示符字符串, 可以使用 % 来包含前一个参数的值. 例如:

(interactive "bBuffer to rename: \nsRename buffer %s to: ")

这里的 % 就表示前端输入的参数值.

为一个 Lisp 表达式

它可以执行该表达式然后再将结果传递给命令.