When reading about ido, we are instructed to add this to .emacs
:
(ido-everywhere t)
The doc says that it Toggle use of Ido for all buffer/file reading.
What does it mean? Everything seems to work whether ido-everywhere
is set or not.
ido-everywhere function
(define-minor-mode ido-everywhere
"Toggle use of Ido for all buffer/file reading.
With a prefix argument ARG, enable this feature if ARG is
positive, and disable it otherwise. If called from Lisp,
enable the mode if ARG is omitted or nil."
:global t
:group 'ido
(remove-function read-file-name-function #'ido-read-file-name)
(remove-function read-buffer-function #'ido-read-buffer)
(when ido-everywhere
(add-function :override read-file-name-function #'ido-read-file-name)
(add-function :override read-buffer-function #'ido-read-buffer)))
It overrides read-file-name-function (https://www.gnu.org/software/emacs/manual/html_node/elisp/Reading-File-Names.html), read-buffer-function (ftp://ftp.gnu.org/old-gnu/Manuals/elisp-manual-20-2.5/html_chapter/elisp_20.html).
You can see the effect when you try File->Open File from menu bar. With ido-everywhere disabled, it opens graphical interface, but with ido-everywhere enabled it shows file list in mini buffer (ido style). Effect can be seen where ever these overrided functions are used.