我刚开始使用Emacs,试图编写一些Emacs Lisp函数。
我希望写一个接收两个参数并且可以交互的函数。但是其中一个参数是布尔类型 - 如果我可以使用 (y-or-no-p) 就太完美了,但是 interactive 没有字符代码。
有什么想法吗?
更新:我正在使用GNU Emacs 23。
此外,这是我的函数目前的样子:
我希望写一个接收两个参数并且可以交互的函数。但是其中一个参数是布尔类型 - 如果我可以使用 (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)))
(interactive "sSome text:\nP")
,没有额外提示)。这样可以提供更好的用户体验(在最常见的情况下少一个提示,更符合基本的Emacs命令的一致性)。在命令之前按下C-u
或M-1
中的任何其他前缀参数组合来传递t
,不要用它来传递nil
。安排nil
作为常见情况。 - Gilles 'SO- stop being evil'