I have lived in London.
I lived in the past, not now.
I have lived in London for 4 years.
I lived in the past, not now; or I lived in the past and now too.
I have lived in London since 2015.
I lived in the past and now.
It's right?
English Language Learners Stack Exchange is a question and answer site for speakers of other languages learning English. It only takes a minute to sign up.
Sign up to join this communityI guess your confusion comes from the fact that the present perfect refers to a point in the past with respect to the position of the present. This means that it can be used to indicate a completed past action, or something that started in the past and is still occurring. Essentially, you need to rely on context to work out what it means (which makes it more tricky for a learner).
Your interpretation is incorrect, they still live in London and have done for 4 years. If you were no longer living in London, you would use the simple past to indicate that: "I lived in London for 4 years" (but I don't live there any more). Therefore "I have Lived in London for 4 years" and "I have been living in London for 4 years" mean essentially the same thing. "Have lived" places more emphasis on the past experience and "have been living" places more emphasis on the continued experience.
I guess the way of explaining the use of "for" with a time period is that it starts within the earliest mentioned time reference in the tense and goes up to the last mentioned time reference in the tense. With simple past, this means that it both starts and ends in the past. With a perfect tense, it means that it starts at the past reference point and ends at the past/present/future reference point. With simple future it both starts and ends in the future. Simple present doesn't work, because it would indicate that the time period both started and ended now, yet comprised of some finite period of time.