基本同意黎的观点。1)从语法的角度考虑,for long一般不用于肯定句,而是用于否定句、疑问句、条件句。for a long time则不受此限制。例如:Have you known them for long?Her life did not remain peaceful for long.如果肯定句里想用for long怎么办?可以用for too long。2)从语义的角度考虑,在否定句中,not ... for long往往相当于not for long(=for a short time),即构成否定转移,而not ... for a long time可能是否定转移。也可能不是否定转移。例如:He is always sick, and he may not live for long(可换为for a long time,否定转移). 注意:not ... for so long则又可能不是否定转移。例如:I’m sorry I haven’t written to you for so long(可换为for a long time).鉴于以上情况的复杂性,虽然两者可以在一定程度上进行互换,但总体上还是不要随便互换为好。