代码之家  ›  专栏  ›  技术社区  ›  Inaimathi

添加完成到(交互)

  •  15
  • Inaimathi  · 技术社区  · 14 年前

    有什么方法可以把我自己的完成添加到 (interactive) elisp函数?理想情况下,我想给它传递一个字符串列表,它将从中制表完成。我知道使用 (interactive "D") ,请 (interactive "F") (interactive "b") 给您分别完成目录、文件和缓冲区名称,但是关于更一般的输入呢?

    1 回复  |  直到 14 年前
        1
  •  28
  •   Sean    14 年前

    论点 interactive 不必是字符串;如果不是,则计算它以获取要传递给函数的参数列表。因此,您可以这样做:

    (defun insert-foo-bar-or-baz (arg)
      (interactive
       (list
        (completing-read "Choose one: " '("foo" "bar" "baz"))))
      (insert arg))