How to show all possible completions hippie-expand

2019-06-21 19:16发布

问题:

I want to list all items that hippie-expand creates, then choose from them by moving the cursor and hitting RET. Is there any way to do this?

回答1:

Here's what I'm using for this purpose:

(global-set-key (kbd "M-i") 'complete-with-helm)
(require 'ac-helm)
(require 'auto-complete-config)
(ac-config-default)
(defun ac-complete-with-helm-auto ()
  "Select `auto-complete' candidates by `helm'.
It is useful to narrow candidates."
  (interactive)
  (let ((c (ac-candidates)))
    (if (= (length c) 1)
        (ac-expand)
      (when ac-completing
        (with-helm-show-completion ac-point ac-last-point
          (helm :sources 'helm-source-auto-complete-candidates
                :buffer  "*helm auto-complete*"))))))
(defun complete-with-helm ()
  (interactive)
  (ignore-errors
    (call-interactively 'auto-complete)
    (call-interactively 'ac-complete-with-helm-auto)))

Necessary packages are auto-complete, helm, and ac-helm. All of them you can get from the package manager.



回答2:

use company-mode. all the UI issues already resolved in company-mode



回答3:

I wrote the following answer to a similar question a while ago. It uses the ido interface for selection, but it should be straightforward to adapt to another selection interface.

How to configure emacs to have it complete the path automatically like vim?