有什么方法可以把我自己的完成添加到 (interactive) elisp函数?理想情况下,我想给它传递一个字符串列表,它将从中制表完成。我知道使用 (interactive "D") ,请 (interactive "F") 或 (interactive "b") 给您分别完成目录、文件和缓冲区名称,但是关于更一般的输入呢?
(interactive)
(interactive "D")
(interactive "F")
(interactive "b")
论点 interactive 不必是字符串;如果不是,则计算它以获取要传递给函数的参数列表。因此,您可以这样做:
interactive
(defun insert-foo-bar-or-baz (arg) (interactive (list (completing-read "Choose one: " '("foo" "bar" "baz")))) (insert arg))