When completion is done on file names, certain file names are usually ignored. The variable completion-ignored-extensions contains a list of strings; a file whose name ends in any of those strings is ignored as a possible completion. The standard value of this variable has several elements including ".o" , ".elc" , ".dvi" and "~" . The effect is that, for example, `foo' can complete to `foo.c' even though `foo.o' exists as well. However, if all the possible completions end in ``ignored'' strings, then they are not ignored. Ignored extensions do not apply to lists of completions---those always mention all possible completions.
Normally, a completion command that finds the next character is undetermined automatically displays a list of all possible completions. If the variable completion-auto-help is set to nil , this does not happen, and you must type ? to display the possible completions.
The complete library implements a more powerful kind of completion that can complete multiple words at a time. For example, it can complete the command name abbreviation p-b into print-buffer , because no other command starts with two words whose initials are `p' and `b'. To use this library, put (load "complete") in your `~/.emacs' file (see Init File).
Icomplete mode presents a constantly-updated display that tells you what completions are available for the text you've entered so far. The command to enable or disable this minor mode is M-x icomplete-mode.