Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/emacs/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Emacs Elisp:在交互命令中询问是或否_Emacs_Lisp_Elisp - Fatal编程技术网

Emacs Elisp:在交互命令中询问是或否

Emacs Elisp:在交互命令中询问是或否,emacs,lisp,elisp,Emacs,Lisp,Elisp,我是Emacs新手,正在尝试编写一些Emacs Lisp函数 我想写一个函数,它有两个参数,可以处理交互。但是,其中一个参数是布尔值-如果我可以使用(y-or-no-p),那就太完美了,但是(交互式)似乎没有字符代码 有什么想法吗 更新:我正在使用GNU Emacs 23 另外,到目前为止,我的函数是这样的: (defun foo (str bool) (interactive "sSome text: \nsDo the thing?") (some-func str) (if b

我是Emacs新手,正在尝试编写一些Emacs Lisp函数

我想写一个函数,它有两个参数,可以处理交互。但是,其中一个参数是布尔值-如果我可以使用
(y-or-no-p)
,那就太完美了,但是
(交互式)
似乎没有字符代码

有什么想法吗

更新:我正在使用GNU Emacs 23

另外,到目前为止,我的函数是这样的:

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

不太清楚你在问什么,但我找不到一个叫做y-or-no-p的函数。你是说是还是不是

这似乎符合我的期望。

啊,找到了

(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)))

y-or-no-p
y-or-no-p
的较短版本,至少在Emacs 23中是这样。
y-or-n-p
n
,而不是
no
)要求用户键入
y
n
,而
yes-or-no-p
要求输入完整的单词(
yes
no
)。显然是打字错误。有关
y-or-no-p
的问题。当函数采用布尔参数时,在Emacs中通常使用前缀参数(
(交互式“sSome text:\nP”)
,没有额外提示)。这提供了更好的用户体验(在最常见的情况下,提示更少,与基本Emacs命令更一致)。在传递
t
命令之前,按
C-u
M-1
任何其他前缀参数组合,不要传递
nil
。将
nil
作为常见情况进行安排。谢谢你,吉尔!(你应该用它和代码来回答,这样我就可以接受这个答案。)