如何在Emacs Lisp中理解这种形式(交互式(列表'交互式))?

时间:2017-04-03 08:01:36

标签: emacs elisp

我找到了一些像这样的代码,

 1 (require 'cl-lib)
 2 (require 'company)
 3 
 4 (defun company-sample-backend (command &optional arg &rest ignored)
 5   (interactive (list 'interactive))
    ...
   )

但如何理解第5行?

1 个答案:

答案 0 :(得分:3)

interactive声明的参数是字符串或elisp表单,在评估时,返回函数的参数值列表

在这种情况下,声明使用返回列表的表单。表格是:

(list 'interactive)

这是一个表单,它返回单个项目的列表,即符号interactive

该函数的参数列表是:

(command &optional arg &rest ignored)

因此,当以交互方式调用此函数时,参数command将具有值interactive