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