Emacs: Name Completion
Emacs has many different word completion systems builtin. Here's a list of the most useful ones.
For completing the word under cursor.
Mostly used for completing function names in programing language source code. This works best in
For expanding current word to any matching string that occurs in any existing buffers. [see Emacs: Hippie Expand]
For expanding current word to any string, emoji, template, etc. You define the abbrevs. [see Emacs: Abbrev Mode by Lisp Code]
Completion for Minibuffer Prompts
For minibuffer prompt name completion. (command name, variable name, file name.) [see Emacs: icomplete, Name Completion]
2012-11-29 thanks to Ba Manzi (杨贵龙) for a tip.