Как мне сразу показать все дополнения при чтении? - PullRequest
3 голосов
/ 28 января 2011

Я пишу второстепенный режим Emacs, и в нем я использую completing-read, чтобы позволить пользователю выбирать из большого набора результатов поиска.Они каждый раз разные, поэтому, скорее всего, пользователь не узнает, что ему нужно, не глядя на список.По этой причине я хотел бы показать временный буфер со всеми завершениями сразу, а не ждать, пока пользователь нажмет Tab, но для меня не очевидно, как это сделать.Есть ли способ, и что это?

Ответы [ 3 ]

6 голосов
/ 28 января 2011

Вы можете получить это, используя minibuffer-with-setup-hook и добавив minibuffer-complete к установочному крюку, например:

(setq tmp '("cat" "dog" "fish"))

(minibuffer-with-setup-hook 'minibuffer-complete
  (completing-read (concat "Pick one (" 
                           (mapconcat 'identity (all-completions "" tmp) " ") 
                           "): ") 
                   tmp))
0 голосов
/ 20 августа 2011

Используйте Сосульки и связывайте icicle-show-Completions-initially-flag вокруг вызова на completing-read:

(let ((icicle-show-Completions-initially-flag  t))
  (completing-read ...))
0 голосов
/ 28 января 2011

Вот начало.Если ваш список завершения слишком большой, чтобы поместиться в мини-буфере, вам придется открыть временный буфер для отображения всех параметров.В качестве альтернативы, просто нажав на вкладку в пустом окне завершения чтения, вы сделаете это за вас.

(setq tmp '("cat" "dog" "fish"))

(completing-read (concat "Pick one (" 
                         (mapconcat 'identity (all-completions "" tmp) " ") 
                         "): ") 
                 tmp)
...