You can use hippie-expand:
(setq hippie-expand-try-functions-list '(try-expand-line))
(global-set-key (kbd "C-;") 'hippie-expand)
Now C-; should expand to the closest matching line. Repeating the command will get you all the matches.
Finally, if you want a popup menu with the choices listed there are some hacky ways of plugging hippie-expand into company-...
abbrev can abbreviate text. Use a numeric argument to say how many words before point should be taken as the expansion. For example, to abbreviate the sentence "The cat and the mooon." as x, put the point at the end and do
C-u 5 C-x a g x <RET>
The emacs manual (info) for Abbrevs gives the details.