ELISP:提示用户输入数字并向用户询问该数量的字符串并将其插入列表的功能

时间:2013-02-19 05:39:09

标签: function emacs elisp user-input

我想创建一个ELISP函数,它会提示用户输入一个数字n,然后不断提示用户n次字符串。理想情况下,我希望将所有这些字符串放入列表中。这是我到目前为止所拥有的。显然,我所拥有的东西不起作用,但它可能有助于澄清我想要做的事情。

(defun prompt-user-n-times (n)
  "Prompt user n time for strings and append strings to list"
  (interactive "nHow many strings: ")

  (while (> n 0)
    (append newlist (interactive "sGive me input: "))
    (setq n (- n 1))
))

感谢。

1 个答案:

答案 0 :(得分:3)

只需为新列表定义绑定:

(defun prompt-user-n-times (n)
  "Prompt user n time for strings and append strings to list"
  (interactive "nHow many strings: ")

  (let ((newlist ()))
    (while (> n 0)
      (setq newlist (append newlist (list (read-string "Give me input: "))))
      (setq n (- n 1)))
    newlist))

有几点评论:互动只是在defun的开头 功能,一个使用其他提示功能,就像简单 read-stringappend要求两个列表,因此返回字符串 应read-string函数

list放入列表中