下面这句话中的“for years”可不可以替换为“many years”或者“years”?不用介词直接做时间状语行吗?

the acquisition of this bottle cured him of a bad habit he had been developing for years.(得到这瓶香水泥还
治好了他多年的一个坏习惯。)——《新概念英语》

可以,这种时间名词做状语很多情况下可以省略前面的介词(不改变意思)。但即使不改变句意也不建议随便省略,不要破坏语感,这个可能需要经验。比如如果你这个for years后面还需要一个介词短语而且介词是for,那么就建议改为……had been developing years for ……
就这个句子里个人感觉可以省略,但是用many years替换会比years要好一些,因为已经句尾了没必要再简化了(当然,你也可以有自己的说话风格)
再闲扯一句:
知名脱口秀演员Russell Peters在一个段子里调侃了一些中国人的口音喜欢省略词尾的清辅音,哪怕是在非常短的词语,他说:为什么要把一个本来很短的词变得更短?
所以嘛,英语其实不是一门特别严谨的语言,这就是为什么英语越学到后面“语感”越重要。多看美剧英剧、或一些英语的谈话节目也会很有帮助的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-08-11
for years是不可以被many years替换,因为前面的for-一段时间是作为时间状语存在,但是many years只是一个名词短语,没有办法作为时间状语。例如:
We've been friends for years.
我们是多年的朋友了。
但是many years不能做状语,可以是主语、宾语等等,例如:
I have done woodwork for many years.
我做过许多年木工活。追问

你好,years是可以组成名词短语做状语的。如《新概念英语》:

we would have to wait twenty-two years for an answer.

这里的 twenty-two years 好像是名词短语作状语而不是宾语,这里的wait是不及物动词。
还有:I lived there two years and two months.(我就这样生活了两年零两个月。)——《瓦尔登湖精选》

且您在另一个回答中又说 for 可以省略的,这不是自相矛盾吗?网页链接

第2个回答  2020-04-12
for years是介词短语作时间状语,如果只用years或many years一般就不是这种表示持续一段时间的状语了。
I have been here for (many) years.

但是:many years ago, years ago是可以做状语的,表示多年前。
Many years ago, he went to the country.
得到了这个瓶子让他改掉了他多年来养成的坏习惯。追问

您好,您的意思是many years不能单独做状语吗?那为什么many years ago只是多加了个副词为什么就能单独状语了?

追答

many years一般不单独作状语。
for+一段时间:现在完成时(也可用于过去)

一段时间+ago:一般过去时
都可以作时间状语,但用的时态不一样。

追问

你好,years是可以组成名词短语做状语的。如《新概念英语》:

we would have to wait twenty-two years for an answer.

这里的 twenty-two years 好像是名词短语作状语而不是宾语,这里的wait是不及物动词。

还有:I lived there two years and two months.(我就这样生活了两年零两个月。)——《瓦尔登湖精选》

追答

可以理解为省略了for。

本回答被网友采纳
第3个回答  2021-08-14
当for引导的时间短语用来修饰具有静态意义的动词是常常可以省略。
所以是可以省略的
第4个回答  2021-08-17
可以替换成for many years,但不能替换成many years或years。不能去掉for,因为形成一个习惯是需要一段时间,for用来表达时间段。