我正在阅读 上的文档completing-read
,但我找不到做我需要的方法。
它说:
(完成-读取 PROMPT COLLECTION &optional PREDICATE REQUIRE-MATCH INITIAL-INPUT HIST DEF INHERIT-INPUT-METHOD)
. . .
REQUIRE-MATCH 可以采用以下值: - t 表示不允许用户退出,除非输入是(或完成到)COLLECTION 的元素或为空。- nil 表示用户可以使用任何输入退出。- `confirm' 表示用户可以使用任何输入退出,但如果输入不是 COLLECTION 的元素,她需要确认她的选择。- `confirm-after-completion' 表示用户可以使用任何输入退出,但如果她
在 `minibuffer-complete-and-exit' 之前调用 `minibuffer-complete'
并且输入不是收藏的元素。- 任何其他行为都与 t 类似,除了键入 RET 不会退出,如果它执行非空完成。
我需要做的是:
(completing-read "What kind of project should I create? "
haxe-project-kinds
(lambda (x) (message "predicate: %s" x)) t)
这不应该 return nil
,因为如果它确实是一个错误 - 但我不想让用户通过所有其他选项,直到她发现她的第一个错误。
不仅如此,文档中宣传的行为与实际发生的情况不符。我放在第 4 个参数的位置上完全没有区别,行为没有改变。