【发布时间】:2012-05-22 20:26:30
【问题描述】:
我正在尝试为 emacs 中的命令行实用程序接受用户输入。我有一些可以在这个命令行中使用的单词(类似于 make 调用的可能目标列表),我希望能够自动完成我知道的单词,允许用户输入我的字典中有多个条目,并且还允许用户写不在我的字典中的东西。一些允许使用自定义字典在 minibuffer 中完成单词的库就是这样。
我不需要完整的解决方案,但非常感谢您提供一些关于从哪里开始寻找的指示。另外,如果可能的话,我宁愿避免使用诸如icicles 或ido 之类的侵入性库——我不希望这个包的用户在配置其余设置时受到限制。
到目前为止,我最好的解决方案是对每个目标多次使用completing-read,直到用户输入空字符串。
解决方案
event_jr 在下面的回答成功了。我使用的最终代码如下所示:
(require 'crm)
(let ((crm-separator " ")
(crm-local-completion-map (copy-keymap crm-local-completion-map)))
(define-key crm-local-completion-map " " 'self-insert-command)
(completing-read-multiple "prompt: " '("foo" "foobar" "baz"))))
【问题讨论】:
标签: emacs autocomplete elisp