Learn English – Which is correct? “I have been here so long.” vs. “I have been here *for* so long.”

grammaticality

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?

Best Answer

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.

Related Topic