Emacs 27: icomplete vs ido mode πŸ‘Ž

By Xah Lee. Date: . Last updated: .

What is the Difference Between Icomplete and Ido?

Icomplete for All Prompts, Ido for File/Buffer Commands Only

emacs icomplete mode 2017 07 10 48947
emacs Alt+x icomplete-mode

icomplete does name completion for any command that prompts for a list of choices in minibufer. They include:

Ido only supports name completion for opening file or switch buffer commands:

There is no config you can set to make other commands use ido completion.

emacs ido mode 2017 07 10 35659
emacs ido mode

Icomplete Needs Press Tab, Return, Ido Just Return

With icomplete, you have to press Tab first to β€œcomplete”, then Enter, unless there is just one candidate left.

With ido, just press Enter, and the first candidate will be used.

Select Choices

icomplete keys for choice selection:

Arrow keys do not work.

ido keys for choice selection:

Icomplete: No Flex Matching

icomplete doesn't have flex matching. You have to type the first char of the name. However, it supports wildcard. For example, β€œ*b” will list β€œabc”.

ido by default will match any substring. For example, typing β€œb” will list β€œabc”.

ido has ido-enable-flex-matching, so that it'll show candidates that contain the chars you typed. For example, β€œbd” will list β€œabcde”.

Icomplete: No Smart Order of Candidates

ido will list the most recently used item first.


I recommend turning on both icomplete and ido.

Emacs Name Completion