# Using Ido Mode in GNU Emacs I like to use GNU Emacs, and have done so for years. It has so much functionality builtin, I don't usually have to add much to it. So my setup is pretty generic. One of the more useful builtin modes is "Ido mode". Ido mode matches parts of buffer or file names dynamically, as you type in the minibuffer. It greatly speeds up buffer or file searches. You can use it by placing the following in your .emacs: (ido-mode t) So if you want to switch to a buffer (C-x b) or load a file (C-x C-f) that is named 'foobar', typing 'fo' will show a list of all buffers or files with 'fo' as part of their name, including foobar. By default, the characters in the file or buffer name have to appear in the order that you type them, but you can change this (see the paragraph on flex mode, below). If multiple matching items are displayed in the minibuffer with Ido mode, you can move to the next and previous matches with C-s and C-r, respectively, and then hit 'enter' to load the one you have selected. C-f disables Ido mode immediately if you type it while in the minibuffer, so you can switch to the standard emacs way of file or buffer finding, just for that one search (meaning just tab completion is available). Here is a neat feature - hitting backspace or delete while the cursor is just to the right of the path delimiter '/' while using Ido mode will jump back to the next higher directory in the currently displayed path (as opposed to deleting the last character you typed). You can then hit C-d to load the currently displayed directory into a dired-mode buffer. You can hit the delete key multiple times to quickly jump through successive parent directories this way (easier seen than described, I think, so give it a try). If you want to match characters out-of-order, in a more fuzzy style, you can enable flex matching with this in your .emacs: (setq ido-enable-flex-matching t) Now, you can type 'fr' to match a buffer named 'foobar', for example. And, a helpful tip when working with your .emacs configuration file - if you add a line or small snippet of elisp to this file, you can enable your change immediately by placing the cursor at the end of the new line or expression and typing C-x C-e. You can also force an entire buffer of elisp to be re-evaluated with 'M-x eval-buffer'. There is no need to restart emacs.