
Let’s jump straight to the point: Vim can autocomplete a word, but it also knows the context of where it found the keyword, and can complete the next word after it.
A place I often find this used is refactoring specs. Say I have a user = ... assignment in a spec that I want to extract out into a let. I can’t autocomplete the whole line, because they start differently. I could copy the line and modify it. OR, I could do this…

Notice how the context after the create :user is all autocompleted. So fast.
The help text for :h i_CTRL-P states,

Further use of CTRL-X CTRL-N or CTRL-X CTRL-P will copy the words following the previous expansion in other contexts unless a double CTRL-X is used.
So, the pattern is
Autocomplete a word with CTRL-P or CTRL-N
Complete context by mashing CTRL-X CTRL-P or CTRL-X CTRL-N
Give it a go, it wont take long to become intuitive and incredibly useful.
P.S. for the Emacs users who have yet to convert to Vim, you can check out HippieExpand.