1

Hope you guys help me with this question!

I have been here so long.

I have been here for so long.

Which is correct? I looked up Google books, and I saw both sentences were used in many books.

Another question. When I just moved to other city, can I say "I haven't been here for a long time." ? This sounds natural to native speakers?

3

Part 1) - "I have been here so long. I have been here for so long" In the context where you have been waiting to meet someone somewhere, and they're very late, then either one of these works. The "so" implies some impatience.

In the context where you are saying you have been in a job for a many years, it's more natural to say "I have been here a long time".

Part 2) - "I haven't been here for a long time." As a native speaker, that sounds a bit clunky. I think "I haven't been here long", or "I haven't been here very long", is more natural.

1

They are both correct. I don't think there is a real difference in meaning. When you found both a lot in many books that seems to support that.

The last question I cannot answer since I am no native speaker. To me it sounds ok though.

0

I think other answers have adequately addressed your first question; however, "I haven't been here for a long time" actually means something else. For example, the last time I was in France was in 1991. If I ever get to go to France again, I might think to myself "I haven't been here for a long time."

In other words, it means you were here before, and then you were not here for a long time, and now you are here again.

To express that you are newly arrived somewhere, you would not say "a long time." If you just moved to a city, you could say either of these:

I haven't been here long.
I haven't been here for long.

I don't know any rules to help you understand this. It's just idiomatic.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy