如何让用户从列表中选择多个项而不是一个?就像在掌舵的C-x b菜单中一样。
目前我只能选择一个项目而不是获得完整列表:
(defun test-main ()
(interactive)
(let ((choice (completing-read "Select: " '("item1 item2 item3"))))
(message choice)))
答案 0 :(得分:4)
您可以使用gem install nokogiri -v '1.6.6.3'
:
completing-read-multiple
它会将所选项目作为列表返回,因此如果您在提示符处键入(defun test-main ()
(interactive)
(let ((choice (completing-read-multiple "Select: " '("item1" "item2" "item3"))))
(message "%S" choice)))
,则会返回item2,item3
。
答案 1 :(得分:2)
因为那是香草completing-read
所做的。它会读取并返回单个选项,提供完成以帮助您选择。
您可以使用Icicles执行您要求的操作。当completing-read
模式启用时,它会重新定义函数Icicle
。
许多Icicles命令是multi-commands,这意味着您可以在单个命令执行中进行多个输入选择:多选命令。您可以使用任何操作define your own多个命令。
对于任何完成(不仅仅是针对多命令),您可以操作,保存和恢复sets of completion candidates。
(您也可以在迷你缓冲区中输入multiple inputs。这对于在没有完成时读取输入的命令也很有用。)