Next: Prefix Matching, Up: Matching [Contents][Index]

### 2.1 Interactive Substring Matching

As you type in a substring, the list of buffers or files currently matching the substring are displayed as you type. The list is ordered so that the most recent buffers or files visited come at the start of the list.

The buffer or file at the start of the list will be the one visited when you press `RET`. By typing more of the substring, the list is narrowed down so that gradually the buffer or file you want will be at the top of the list. Alternatively, you can use `C-s` and `C-r` (or the right and left arrow keys) to rotate buffer or file names in the list until the one you want is at the top of the list.

Completion is also available so that you can see what is common to all of the matching buffers or files as you type.

For example, if there are two buffers called `123456` and `123`, with `123456` the most recent, when using `ido-switch-buffer`, you first of all get presented with the list of all the buffers

    Buffer: {123456 | 123}

If you then press `2`:

    Buffer: 2[3]{123456 | 123}

The list in {...} are the matching buffers, most recent first (buffers visible in the current frame are put at the end of the list by default). At any time you can select the item at the head of the list by pressing `RET`. You can also put the first element at the end of the list by pressing `C-s` or `<right>`, or bring the last element to the head of the list by pressing `C-r` or `<left>`.

The item in [...] indicates what can be added to your input by pressing `TAB` (`ido-complete`). In this case, you will get "3" added to your input.

So, press `TAB`:

    Buffer: 23{123456 | 123}

At this point, you still have two matching buffers. If you want the first buffer in the list, you can simply press `RET`. If you want the second in the list, you can press `C-s` to move it to the top of the list and then press `RET` to select it.

However, if you type `4`, you’ll only have one match left:

    Buffer: 234[123456]

Since there is only one matching buffer left, it is given in [] and it is shown in the `ido-only-match` face (ForestGreen). You can now press `TAB` or `RET` to go to that buffer.

If you want to create a new buffer named `234`, you can press `C-j` (`ido-select-text`) instead of `TAB` or `RET`.

If instead, you type `a`:

    Buffer: 234a [No match]

There are no matching buffers. If you press `RET` or `TAB`, you can be prompted to create a new buffer called `234a`.

Of course, where this function comes in really useful is when you can specify the buffer using only a few keystrokes. In the above example, the quickest way to get to the `123456` file would be just to type `4` and then `RET` (assuming there isn’t any newer buffer with `4` in its name).

Likewise, if you use `C-x C-f` (`ido-find-file`), the list of files and directories in the current directory is provided in the same fashion as the buffers above. The files and directories are normally sorted in alphabetical order, but the most recently visited directory is placed first to speed up navigating to directories that you have visited recently.

In addition to scrolling through the list using `<right>` and `<left>`, you can use `<up>` and `<down>` to quickly scroll the list to the next or previous subdirectory.

To go down into a subdirectory, and continue the file selection on the files in that directory, simply move the directory to the head of the list and hit `RET`.

To go up to the parent directory, delete any partial file name already specified (e.g., using `DEL`) and hit `DEL`.

To go to the root directory (on the current drive), enter two slashes. On MS-DOS or Windows, to select the root of another drive, enter ‘`X:/`’ where ‘`X`’ is the drive letter. To go to the home directory, enter ‘`~/`’. To enter Dired for this directory, use `C-d`.

You can also visit files on other hosts using the ange-ftp notations ‘`/host:`’ and ‘`/user@host:`’.

You can type `M-p` and `M-n` to change to previous/next directories from the history, `M-s` to search for a file matching your input, and `M-k` to remove the current directory from the history.

If for some reason you cannot specify the proper file using `ido-find-file`, you can press `C-f` to enter the normal `find-file`. You can also press `C-b` to drop into `ido-switch-buffer`.

Next: Prefix Matching, Up: Matching [Contents][Index]