完成 - 读取 - 默认自动对焦候选窗口

时间:2018-01-30 20:58:38

标签: emacs autocomplete

如何在默认电子邮件中使用自动完成功能自动将焦点自动设置为具有显示的候选者(选项卡打卡后)的窗口?

我不能在我的情况下使用IDO或其他自动完成系统,因为我需要浏览80k +候选人,只有自动完成系统可以处理这个是默认系统。

我会很高兴任何有用的指示。

修改

经过一些研究,我开始按照不完美的解决方案开展工作:

(define-key minibuffer-local-completion-map
    (kbd "<tab>")
    (lambda ()
      (interactive)
      (call-interactively 'minibuffer-complete)
      (call-interactively 'switch-to-completions)))
(define-key completion-list-mode-map
    (kbd "C-f")
    'isearch-forward)

唯一的问题是,在我输入完成 - 读取 - 默认后,我必须先点击TAB打开候选人窗口(新添加自动对焦)。但是我想让它立即打开候选人的窗口,而不需要点击TAB。怎么做?我试图在调用完成 - 读取 - 默认后调用minibuffer-complete,但它没有打开候选人的窗口,只有标准的迷你缓冲提示。

1 个答案:

答案 0 :(得分:0)

经过一番痛苦,我终于找到了解决方案

(defun custom/default-completing-read (question candidates)
  (run-at-time "0.5" nil
               (lambda ()
                 (minibuffer-complete)
                 (switch-to-completions)
                 (isearch-forward)))
  (completing-read-default question candidates))

调用之后,它会调用默认(用C语言编写)完成系统,该系统可以处理数吨和数吨的候选人而没有问题,自动跳转到启用了isearch-forward的候选人选择。

希望将来有人帮助......