12 “Hippie” Expansion

M-x hippie-expand is a single command providing a variety of
completions and expansions. Called repeatedly, it tries all possible
completions in succession.

Which ones to try, and in which order, is determined by the contents of
the customizable option hippie-expand-try-functions-list. Much
customization of the expansion behavior can be made by changing the
order of, removing, or inserting new functions in this list. Given a
positive numeric argument, M-x hippie-expand jumps directly that
number of functions forward in this list. Given some other argument (a
negative argument or just C-u) it undoes the tried completion.

See the commentary in hippie-exp.el for more information on the
possibilities.

Typically you would bind hippie-expand to M-/ with
dabbrev-expand, the standard binding of M-/, providing one
of the expansion possibilities.