Jestem nowy w Emacs i próbuję napisać kilka funkcji Emacs Lisp.Elisp: Pytanie o tak lub nie w poleceniach interaktywnych
Chciałbym napisać funkcję, która ma dwa parametry i może obsłużyć interaktywność. Jednak jednym z parametrów jest boolean - byłoby idealnie, gdybym mógł użyć (y-or-no-p)
, ale (interactive)
wydaje się nie mieć kodu postaci do tego.
Wszelkie pomysły?
Aktualizacja: używam GNU Emacs 23.
Również tutaj jest to, co moja funkcja wygląda tak daleko:
(defun foo (str bool)
(interactive "sSome text: \nsDo the thing?")
(some-func str)
(if bool (some-other-func str)))
Gdy funkcja przyjmuje logiczną parametru, to jest powszechne w Emacs używać prefiksu dla tego ('(interaktywny„sSome tekst: \ nP”)', nie ma dodatkowych wierszu). Zapewnia to lepsze wrażenia użytkownika (jeden mniej podpowiedzi w najczęstszym przypadku, bardziej zgodny z podstawowymi poleceniami Emacsa). Wciśnij 'C-u' lub' M-1' dowolną z wielu innych kombinacji argumentów przedrostkowych zanim polecenie przekaże 't', nie rób tego, aby przekazać' nil'. Rozmieść dla 'nil' na typowy przypadek. – Gilles
Interesujące. Dzięki, Gilles! (Powinieneś odpowiedzieć tym słowem i kodem, aby móc to przyjąć jako odpowiedź.) –