I've always thought that the phrase 'long time no see' was wrong and unacceptable, until one day I heard this phrase in an American movie. I want to know, is this phrase right or not?
Long time no see probably derives from pidgin English spoken by Native Americans or Chinese immigrants, although no one is completely sure.
It matches the Mandarin Chinese phrase 好久不見 (hǎo jiǔ bú jiàn) word-for-word,* which is grammatical in Mandarin.
When you say long time no see, you are pretending to speak broken English, fitting English words to a foreign or pidgin grammar. The phrase is used so much, many people use it without knowing that, but to native ears, it certainly sounds like pidgin English because of the ungrammaticality you noticed. A few other pidgin phrases have gained some currency in English, such as: look-see, from Chinese pidgin English, as in "I'll have a look-see"; savvy to mean "understand", as in "You savvy?", probably from West African pidgin English; and da kine, Hawaiian pidgin English for "the kind", but meaning pretty much anything, or sometimes "the original kind" or "the best kind". To retain their distinctive character, these phrases don't adapt to English grammar; they retain their own grammar even when included in English sentences. Sometimes people modify long time no see, retaining the pidgin grammar; for example, long time me no see you girl.
*Ignoring the usual subtle differences between corresponding words in different languages.
Despite its ungrammaticality, the expression is widely accepted as a fixed expression.
It's somewhat informal but perfectly acceptable.
As the others point out, this is a fixed expression. You should memorize it as a single vocabulary item. It's true that it doesn't follow the usual rules of English grammar, so you could certainly call it "ungrammatical" if you wanted to. But the fact is, English speakers don't apply those rules to this phrase, so whether it's grammatical or not is the wrong question to ask.
In fact, you could say it has its own rules, just as many fixed expressions do. And occasionally, we'll see these rules in action when native speakers form similar phrases by analogy.
Feel free to say "long time no see" if it seems appropriate. It sounds informal and friendly!
It's grammatically wrong as it doesn't have a subject make it as a incomplete sentence( like what Jay say). However, it's a common expression and is acceptable for writing informal thing (like Facebook).
I will give you another example on expression based on this situation
"See you soon". If you write grammatically, it should be "I will see you soon", but it's a common expression we use in our everyday life. So, it's acceptable.