Elisp 中读取交互式调用的参数
Contents
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 表达式
它可以执行该表达式然后再将结果传递给命令.