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, 2015 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.... Aug 24, 2015 at 20:32
  • Did you try turning on ido?
    – Dan
    Aug 24, 2015 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, 2015 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, 2015 at 22:41

2 Answers 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.

  • 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. Aug 24, 2015 at 21:04

Basic setup is just:

 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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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