12
有什么方法可以将我自己的完成添加到(interactive)
elisp函数?理想情况下,我想传递一个它将从中完成的字符串列表。我知道使用(interactive "D")
,(interactive "F")
或(interactive "b")
可以分别完成目录,文件和缓冲区名称,但是更常用的输入是什么?将完成添加到(交互式)
有什么方法可以将我自己的完成添加到(interactive)
elisp函数?理想情况下,我想传递一个它将从中完成的字符串列表。我知道使用(interactive "D")
,(interactive "F")
或(interactive "b")
可以分别完成目录,文件和缓冲区名称,但是更常用的输入是什么?将完成添加到(交互式)
interactive
的参数不一定是字符串;如果不是,则评估它以获取传递给函数的参数列表。因此,你可以做这样的事情:
(defun insert-foo-bar-or-baz (arg)
(interactive
(list
(completing-read "Choose one: " '("foo" "bar" "baz"))))
(insert arg))
/facepalm现在我已经看到了一个例子,'M-x apropos'条目中的'interactive'的注释非常有意义。 – Inaimathi 2010-03-04 21:29:16