2

So there is ido-completing-read that seems perfect to assign to completing-read-function. There is no customization interface though.

How is the user supposed to enable ido-completing-read for all completing reads?

  • Have a look at the Emacswiki page for Ido for details. – Dan Aug 24 '15 at 20:05
  • Emacswiki page does not mention completing-read-function so I guess wiki is older than the function (it uses defadvice). Does not really answer my question.... – Gracjan Polak Aug 24 '15 at 20:32
  • Did you try turning on ido? – Dan Aug 24 '15 at 20:33
  • 2
    Hmm... you could either try the package ido-ubiquitous, or else just set the variable by hand: (setq completing-read-function #'completing-read-ido). – Dan Aug 24 '15 at 20:43
  • 1
    (setq completing-read-function #'completing-read-ido) won't work because completing-read-ido doesn't handle all the different collection types that completing-read-function might receive (bug#15430). – npostavs Aug 24 '15 at 22:41
2

Seems that convetions is to provide a customization per each package separatelly:

  • Org Mode: (setq org-completion-use-ido t)
  • Magit: (setq magit-completing-read-function 'magit-ido-completing-read)
  • Gnus: (setq gnus-completing-read-function 'gnus-ido-completing-read)

Or use https://github.com/DarwinAwardWinner/ido-ubiquitous that tries to do the correct thing always.

| improve this answer | |
  • 1
    This is not a convention it's rather that some packages support it while ido-ubiquitous is just a hack to use ido wherever possible. – Mark Karpov Aug 24 '15 at 21:04
1

Basic setup is just:

(setq
 ido-create-new-buffer    'always
 ido-enable-flex-matching t
 ido-everywhere           t)

(ido-mode 1) ; ido for switch-buffer and find-file

Next, to use it everywhere install ido-ubiquitous and activate it:

(ido-ubiquitous-mode 1) ; use IDO everywhere

ido-vertical is highly recommended:

(setq ido-vertical-define-keys 'C-n-and-C-p-only)

(ido-vertical-mode 1) ; display IDO vertically

Don't forget about Smex.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.