Elisp: спрашивать да или нет в интерактивных командах - PullRequest
6 голосов
/ 21 декабря 2010

Я новичок в Emacs и пытаюсь написать несколько функций Emacs Lisp.

Я хотел бы написать функцию, которая принимает два параметра и может работать в интерактивном режиме. Тем не менее, один из параметров является логическим - было бы идеально, если бы я мог использовать (y-or-no-p), но (interactive), похоже, не имеет код символа для этого.

Есть идеи?

Обновление: Я использую GNU Emacs 23.

Кроме того, вот как выглядит моя функция:

(defun foo (str bool)
  (interactive "sSome text: \nsDo the thing?")
  (some-func str)
  (if bool (some-other-func str)))

Ответы [ 2 ]

10 голосов
/ 21 декабря 2010

Ах, нашел его.

(defun foo (str bool)
  (interactive
    (list (read-string "Some text: ")
          (y-or-n-p "Do the thing? ")))
  (some-func str)
  (if bool (some-other-func str)))
1 голос
/ 21 декабря 2010

Не совсем уверен, что вы спрашиваете, но я не могу найти функцию с именем y-or-no-p.Вы имели в виду yes-or-no-p?

Это похоже на то, что я ожидал.

...