语法核心/中级 · 通悟语法

Chapter 6 完成进行时态

6.5 重复事件

原书第 55 个内容页12,611 字符

6.5 重复事件

前面各节中主要讨论了现在完成进行时态表示“延续事件”的用法,以及这一用法与现在完成时的“延续事件”用法的区别。这一节开始讨论现在完成进行时的另一种用法——重复事件。

现在完成进行时可表示重复事件,具体来说,就是表示到目前为止的一段时间内重复发生的活动(a repeated activity, a habitual action in a period of time up to the present)。

现在完成进行时表示“重复事件”的用法主要分为两种情况:一种是“短暂动词”用于现在完成进行时可以表示一个重复事件,这是最典型的重复事件的用法;另一种是“有限延续动词”用于现在完成进行时可以表示一个重复事件。因此,本节内容安排如下:

6.5.1 重复事件(一):短暂动词

6.5.2 重复事件(二):有限延续动词

6.5.1 重复事件(一):短暂动词

我曾经在和一位外国朋友聊天时,问他是否是第一次来北京,他是这么回答我的:

1 I have been coming to Beijing for 14 years.

看完这句话,对于它的意思,相信大多数读者的第一反应是:

我来北京有14年了。

也就是说14年来,他一直长期生活在北京。但实际上,我的这位朋友并不是生活在北京。

还有人这样曲解:“我到北京一路上走了14年。”也就是说,他从某个地方来北京,由于路途遥远,这一长途跋涉竟花了他14年的时间——非也,若果真如此,那可不亚于“唐僧西天取经”啊!

相信只要学过英语的人都认识该句中的每一个单词,但对于这一看似简单的句子,要想真正理解它的意思却并不那么简单。

问题的关键在于该如何正确理解have been coming的意思。其实,这里的have been coming表示的是一个重复的活动,所以这句话正确的意思应该是:

在过去的14年中,我常常来北京。

这也就是说,在14年期间,他多次重复来北京,而不是一直在北京住了14年。

从这个例子,可以看到现在完成进行时的另一种思维表达——用短暂动词(如come)的完成进行时(如have been coming)来表示到目前为止的一段时间内重复发生的动作

再来看一个短暂动词come用于现在完成进行时表示重复活动的例句:

2 I’ve been coming to see him for 10 years.

妙语点睛 这里的have been coming同样是表示一个在10年当中不断重复的活动。

精品译文 10年来,我常常过来看望他。

再来看下面这个句子:

3 They have been going there for 10 years.

虽然这句话译成汉语可以是:他们去那里已经有10年了。

但这并不是表示他们一直生活在那里,而是表示“10年期间,他们屡次去那里”,即表示一个重复活动。可以把这个句子放在一个更完整的语境中:

4 Every Sunday they meet in the bar. They have been going there for 10 years.

妙语点睛 这里的have been going表示一个在10年当中不断重复的活动,即在10年期间,每周日他们都去那家酒吧。所以,“他们去那里已经有10年了”并不是表示他们一直生活在那里。

精品译文 他们每周日都会在那家酒吧会面,他们去那里已经有10年了。

再比如下面的对话:

5 A: Guess what? Michael and Jane are getting married!

B: Really? I didn’t even know they were going together.

A: They have been going together for over three years now.

妙语点睛 大家知道go together是一个短暂活动,这里要表示一个在三年当中不断重复的活动,所以用了现在完成进行时have been going together。

精品译文 A:知道吗,迈克尔和简要结婚了!

B:真的?我连他们俩在谈恋爱都不知道。

A:他们恋爱都三年多了。

另外值得注意的是,这里的go together在口语中是表示“谈恋爱”的意思。所以中文的“恋爱三年多了”用英文就可以说成have been going together for over three years now。如果不知道这个短语,有的读者也许会想到fall in love这个短语。但是如果说一个人have been falling in love for three years,则往往表示在三年当中,他不断地爱上不同的人,恋情不断,但终无结果,因为fall in love也是一个短暂动词,它的完成进行时就表示一个不断重复的活动。

再来看一个关于“恋爱”的例子:

6 You’ve been going with Nancy for over three years now. Why don’t you pop her the question?

妙语点睛 大家知道,go是一个短暂动词,这里要表示一个在三年当中不断重复的活动,所以用了现在完成进行时have been going。pop the question是俚语,表示“求婚”的意思。

精品译文 你与南希交往已经有三年多了,怎么还不向她求婚呢?

谈完“恋爱”,现在说说“结婚”。“结婚”的英文是marry,它是一个短暂动词,所以,如果要表示“我结婚有一年了”,要用“状态表达”说成“I’ve been married for a year.”,而不是“I’ve married for a year. *”。因此,如果把marry用于现在完成进行时,则是表示一个重复的活动。请看下面的例句:

7 Koreans have been marrying U.S. soldiers stationed here since the 1950s. The peak years were during the 1970s, when more than 4,000 Koreans married U.S. soldiers each year.

妙语点睛 这里的have been marrying表示一个不断重复发生的事件,即重复事件,所以翻译时要注意体会。

精品译文 自20世纪50年代以来,就不断有韩国人嫁给在当地的美国驻军,70年代达到了高峰,每年有四千多人嫁给美国大兵。

再来看其他的例句:

8 Over the past few years, many towns in the United States have been joining with neighboring communities to share the costs of government.

妙语点睛 这里join的动作不是一次完成的,而是在近几年当中(over the past few years)不断重复发生的,所以要用have been joining来表示这一重复活动。

精品译文 在近几年中,美国的许多城镇不断与邻近社区合并,以降低政府的费用开支。

9 In recent years, railroads have been combining with each other and merging into supersystems, causing heightened concerns about monopoly.

妙语点睛 这里的have been combining…and merging同样是表示重复发生的活动。

精品译文 近些年来,铁路公司相互合并,成为超大型集团,这引起人们对垄断的高度关切。

10 I’ve been hearing from my girlfriend regularly since I came to America.

自从来到美国后,我就定期收到女朋友的来信。

11 The price has been going up recently. I wonder whether it will remain so.

最近物价一直看涨,不知是否会一直这样。

12 I’ve been taking French lessons this year. 今年我一直在上法语课。

比如,在过去的几年里,我收到来自全国各地读者的来信,从这些来信中,我更好地了解到他们在英语学习中的困惑,于是我可以用现在完成进行时来这样说:

13 From the letters I’ve been receiving from my readers for years, I understand where their difficulties lie in learning English.

妙语点睛 这里的receive是一个短暂动词,所以我就得用现在完成进行时have been receiving来表示重复事件,即这几年不断地收到读者的来信。

精品译文 从这几年我收到的读者来信中,我能理解他们学习英语的难点在哪里。

最后需要提醒大家注意的是,短暂动词用于完成进行时态(如have been coming)一般不宜接“短的时间状语”。比如:

Mike has been winning that race for two hours. *

这句话是没有太大的实际意义的,因为一个人不可能在两个小时内连续两次、甚至多次赢得某个比赛的胜利。所以,后面接的都应该是表达较长时间的状语,表示在一段相对较长的时间内重复的动作。比如这么说:

14 Mike has been winning that race for years.

这就表示“迈克多年以来多次赢得那个比赛”。这里的win同样是一个短暂动词,它用于现在完成进行时,可以被解释成一个重复发生的事件。

6.5.2 重复事件(二):有限延续动词

上一小节讨论了现在完成进行时态(have been doing)用于短暂动词(如come)时表示“重复事件(repeated events)”的意义和用法,这一节将讨论“有限延续动词”用于现在完成进行时是如何表示“重复事件”的。先来看看下列关于“网恋(Internet dating)”的一个例句:

1 I’ve been chatting online for a little over three years and have met hundreds of people. One common thing of those who have met others in real life is“Don’t base the rest of your life on a week or two”, meaning don’t spend a week or two with your online lover, then move in with them and get married.

妙语点睛 这里的chat虽然是一个可以延续的动词,但它用在I have been chatting online for a little over three years这句话里面,显然就不能表示一个不间断的延续活动了,因为“聊天”不可能是一直不间断地“延续”了三年多。所以,根据日常的实际经验,只能把它解释为是在三年之中“重复”上网聊天,也即这里的have been chatting应该是表示一个重复事件(repeated events),而不是延续事件(continuous events)。

精品译文 我上网聊天已经有三年多了,也认识了很多人。那些已经和现实生活中的网友见过面的人总说:“别因为一两个星期的感情就搭上你一辈子的幸福”,这就是说,别仅仅和你的网上情人相恋一两个星期后就谈婚论嫁。

另一方面,也可以将上面这个例句中的“三年”的时间段缩短为“三小时”,而仍然保留完成进行时have been chatting,于是可以换个语境这么说:

2 I began chatting online three hours ago and I am chatting online now. I have been chatting online for three hours now.

妙语点睛 在这一句里面,have been chatting则显然表示的是一个延续活动而不是重复活动,即“聊天”这一活动是一直不间断地持续了三个小时。

精品译文 我是三个小时之前开始上网聊天的,现在还在聊,因此,我上网聊天到现在已有三个小时了。

尽管上述两个语境中用的都是完成进行时态have been chatting,但它们所表达的意义是不同的,而这种差异是由于两个语境中所用的时间长短不一样造成的。对比上述两个不同的场景,会发现这样一个有趣的现象:have been chatting如果接一个“较长的时间段”,则表示的是一个“重复活动”;如果接一个“较短的时间段”,则表示的是一个“延续活动”。

为了能从中找出一般规律,下面来进一步分析其他例句。请比较:

3 1) Frank likes to eavesdrop on his boss’s phone conversations. His boss doesn’t know Frank has been listening to him talk on the phone for the past three years.

2) Frank is eavesdropping on his boss’s phone conversations. He has been listening to him talk on the phone for ten minutes now.

妙语点睛 在例句1)中,现在完成进行时has been listening与表达较长时间的持续时间状语for the past three years搭配使用,这就表示在近三年当中,他不断“重复”地偷听他老板的电话,所以,这里的has been listening表示重复活动。在例句2)中,现在完成进行时has been listening与表达较短时间的持续时间状语for ten minutes now搭配使用,则表示他偷听老板的电话是一直在“延续”的,已经延续了10分钟了,所以,这里的has been listening表示延续活动。

精品译文 1)弗兰克喜欢偷听他老板的电话,他老板还不知道他偷听电话有三年了。

2)弗兰克正在偷听他老板的电话,他老板还不知道他偷听电话有10分钟了。

4 1) Larry King has been interviewing important people for more than 40 years. King has been asking famous people questions throughout his career, having accumulated more than 40,000 interviews. He has talked with every American president since Richard Nixon.

 2) Larry King has been interviewing the President for over an hour.

妙语点睛 在例句1)中,完成进行时has been interviewing接了表达较长时间的时间状语for more than 40 years,这就表示在过去的40多年中,拉里·金多次重复采访众多要人,所以,这里的has been interviewing表示重复活动。同样的道理,has been asking与表达较长时间的时间状语throughout his career搭配使用,所以,这里的has been asking也是表示一个重复活动。在例句2)中,has been interviewing则表示一个一直在延续的活动,且持续了一个多小时。[注:拉里·金曾为美国CNN(有线电视新闻网)最为著名的节目主持人之一,主持脱口秀节目Larry King Live。]

精品译文 1)拉里·金从业40多年来,采访过众多名人,向他们提出各种问题,累计采访达四万多人次。自从尼克松总统以来,历届美国总统都接受过他的采访。

2)拉里·金一直在采访总统,到现在有一个多小时了。

5 A: I’m going out to pick up a sandwich. Can I get you something?

B: Hmm. I’ve been eating too much lately. I’ll just have the yogurt I brought, but thanks for the offer.

妙语点睛 这句话中的have been eating显然也是表示最近(lately)在重复的活动。但如果你此时正在吃饭,有人问你吃了多长时间了,你说“We have been eating for two hours.”就是表示一个延续的活动。

精品译文 A:我想出去买块三明治,要我替你捎点什么吗?

B:嗯,最近我吃得太多了,我还是就吃我带来的酸奶吧,多谢了。

从对以上众多例句的分析中可以发现,像动词chat,listen,interview,ask和eat等,都是表示可以延续的动作,所以这些动词用于完成进行时都可以表示延续的活动。这不同于come这样的瞬间即结束的动词,因为它不能延续,所以它的完成进行时have been coming用于较长的时间段时,只好把它解释为重复的动作(见6.5.1小节)。但在另一方面,像动词chat,listen,interview,ask和eat等,虽然比瞬间动词come具有较强的延续性,但它们所表达的延续性也是有限的,因为它们都是表达某个单一具体的动作,而对于一个能体现出具体动作的动词,一般不可能持续太长的时间。因此,当它们用于表达较长时间的时间状语时,就不能说某一活动在“延续”,而只能解释成“重复”了。比如前文中的“采访(interview)”不可能一次持续40多年的时间,实际情况是在40年期间,拉里·金在“重复”采访,即他从事新闻采访这个职业。

对于这样具有一定的延续性但又不能长时间延续的动词,我们称之为“有限延续动词”,所以可以得出这样的结论:

“有限延续动词”用于完成进行时态,若接表达较长时间的状语表示“重复活动”,若接表达较短时间的状语则表示“延续活动”。

此时的现在完成进行时态体现了“现在进行时态”的“有限持续性”特点,因此,它的持续时间不宜太长,这是进行体赋予它的特点。再比如:

6 1) He has been repairing cars for almost 20 years.

2) He has been repairing his car since 6:00 this morning.

妙语点睛 在例句1)中,有限延续动词repair的完成进行时has been repairing与表达较长时间的状语for almost 20 years连用,所以这里的repair可以解释成重复事件,表示“他修理汽车有将近20年了”,这强烈表明他是专门从事汽车维修工作的,修车是他的职业。在例句2)中,有限延续动词repair的完成进行时has been repairing与表达较短时间的状语since 6:00 this morning连用,所以这里的repair可以解释成延续事件,表示“从早上6点到现在,他一直在修理他的车”。这并不能说明修车是他的职业,只是表示他一直在做的一项活动而已。

精品译文 1)他修理汽车将近20年了。

2)从早上6点到现在,他一直在修理他的车。

7 1) We’ve been writing to each other for years.

2) I’ve been writing this letter for an hour.

妙语点睛 在例句1)中,有限延续动词write的完成进行时have been writing与表达较长时间的状语for years连用,所以可以把这里的write解释成重复事件,表明“我们有保持通信联系的习惯”,相当于“Years ago we started writing to a pen pal. We still write to each other now.”。在例句2)中,有限延续动词write的完成进行时have been writing与表达较短时间的状语for an hour连用,所以可以把这里的write解释成延续事件,表明“我在说话时刻正在做的一项活动”。

精品译文 1)我们多年来一直保持通信联系。

2)这封信我写了有一个小时了。

8 A: I’ve been running a mile every afternoon for the past month, but I still haven’t been able to lose more than a pound or two. I wonder if it’s worth it.

B: Oh, don’t give up now. It always seems hard when you are just starting out.

妙语点睛 这里的有限延续动词run的现在完成进行时have been running与表达较长时间的状语for the past month连用,所以我们把这里的run解释成重复事件,尤其是时间状语every afternoon也表明这是一个重复活动。这表明“我养成了每天下午跑一英里的习惯,这个习惯已经有一个月了”。

精品译文 A:近一个月以来,我每天下午都要跑一英里,可是我的体重连一两磅都没减轻。我都怀疑这么跑是否真的管用。

B:哦,现在别打退堂鼓,万事开头难啊。

9 1) I’ve been jogging every morning for the last ten months.

2) I’ve been jogging here for half an hour.

妙语点睛 在例句1)中,有限延续动词jog的完成进行时have been jogging与表达较长时间的状语for the last ten months连用,所以我们把这里的jog解释成重复事件,尤其是时间状语every morning也表明这是一个重复活动。这表明“我有慢跑锻炼的习惯,但也许在说话的时刻我并没在跑步”。在例句2)中,有限延续动词jog的完成进行时have been jogging与表达较短时间的状语for half an hour连用,所以我们把这里的jog解释成延续事件,这并不表明“我有慢跑锻炼的习惯,只是表示在说话时刻我正做的一项运动而已”。

精品译文 1)在近10个月以来,我每天早晨慢跑锻炼。

2)我在这儿慢跑有半个钟头了。

看到这里,也许有读者会问:到底多长的时间才算是长时间呢?是几个月?几年?还是几十年?当然,这里说的“长时间”只能是一个相对的概念,尤其是针对特定的谓语动词来说的。比如“半小时”对于上面讨论过的“慢跑(jog)”的活动是短时间,但在下面这个句子中就算是“长时间”:

10 A: I’ve been calling David for the past half hour, but I keep getting a busy signal.

B: Well, if you don’t get him soon we’ll just have to go to the movies without him.

妙语点睛 从后文的but I keep getting a busy signal得知,这里“我”打电话给戴维是多次重复的,而且都是在过去半个小时内多次的重复活动,所以这里“半小时”对于call来说就算是一个较长的时间了。

精品译文 A:近半个小时我一直在给戴维打电话,但总是忙音。

B:噢,如果你不能快点联系上他,我们只好不带他去看电影了。

以下例句中的谓语动词都是有限延续动词,由于是用于表达较长时间的状语,所以都表示重复活动,请读者认真体会:

11 A: You know some TV channels have been rerunning a lot of comedies from the sixties. What do you think of those old shows?

B: Not much, but the new ones aren’t so great, either.

精品译文 A:一些电视频道里一直在重播60年代的喜剧电影,你觉得那些老片子怎么样?

B:不怎么样,不过新的喜剧片也很一般。

12 That story is a legend. People have been telling it for hundreds of years. No one knows if it’s true or not.

那个故事只是个传说,几百年来人们一直在讲述着,谁也不知道它是否是真的。

13“If you sit too close to the television, you’ll ruin your eyes.”Sound familiar? You might have heard this warning as a child. Mothers everywhere have been saying it for years. But is there any truth to this bit of motherly wisdom?

如果你看电视时坐得离电视机太近,会损害你的眼睛。”听起来熟悉吗?小的时候你可能听到过这样的警告。世界各地的母亲们长久以来一直都在这样说。但是这个来自母亲智慧的忠告有多少事实根据呢?

对于一个“说话的巨人,行动的矮子”,你可以这么对他说:

14 You’ve been saying that for five years. I wonder when you’re going to put it into practice.

这话你都说了有五年了,我不知道你何时才能付诸实践。

如果自己也是“光说不练”的人,可以这样用英文来下决心:

15 I’ve been talking about it for nearly fifty years. Now I’m going to do it.

这件事我都说了将近50年了,现在我就打算去做。

如果有读者是“烟民”,那么你就可以用现在完成进行时来谈论自己“漫长的烟龄”:

16 I have been smoking for ten years.

妙语点睛 这里显然是表示“抽烟”这个习惯活动在过去的10年中不断地重复发生,而不是表示一直持续不断。同样的道理,若接表达较短时间的状语,则可以解释为延续活动,比如“I have been smoking for two minutes now.”表示“这根烟我抽了有两分钟了”,这是一个延续活动。

精品译文 我的“烟龄”已有10年了。

另外,值得注意的是,既然存在有限延续动词,那么就会有无限延续动词。在英文中,像work,learn和wait等动词并不能表现出某一具体的动作,它们近乎一种状态的延续,这样的动词被称为无限延续动词。对于无限延续动词来说,所接的时间状语不论表达的时间长短,都表示延续活动的意义。例如:

17 1) I’ve been learning English for over ten years now.

2) I’ve been learning English for the past two hours. No wonder I feel tired.

1) 我学英语到现在有十多年了。

2) 在过去的两个小时里我一直在学英语,难怪我感到累了。

18 1) He has been working in the same job for 30 years.

2) He has been working on the puzzles for two hours.

1) 这个工作他干了有30年了。

2) 他玩这个拼图游戏有两个小时了。

19 1) A: Winter is over at last. Time to pack up my gloves and boots.

B: I’ve been waiting for this for months.

2) I’ve been waiting for you for three hours!

1) A:冬天终于过去了,现在该把手套和长靴收拾起来了。

B:我等了好几个月了!

2)我已经等了你三个小时了!

上面这些句子都是表示延续事件,这点在6.3.2小节中讨论过。不过,即使对于这些无限延续性动词,也可能会通过其他方式来表示重复事件。比如:

20 I’ve been working on the night shift for several weeks.

妙语点睛 这里的work是一个典型的无限延续动词,但由于句中有on the night shift这一时间状语表示“上夜班”,又因为客观上有夜班和白班交替重复出现的情况,所以该句中的have been working表示重复活动。

精品译文 近几个星期以来我一直在上晚班。

思维总结

本节讨论了完成进行时如何表示“重复事件”。这一用法主要适用于两类动词:短暂动词和有限延续动词。不适合无限延续动词。

首先,对于短暂动词来说,它用于现在完成进行时往往表示重复事件。具体来说,就是表示到目前为止的一段时间内重复发生的某一活动(a repeated activity, a habitual action in a period of time up to the present)。需要注意的是,此时句子的谓语往往都是短暂动词,如果是延续动词则可能表示一个延续的活动。比如本节开头的那个句子,若将其谓语come改为延续动词live,说成“I have been living in Beijing for 14 years.”,则表示一个延续的living活动,意思是“我在北京生活了14年了”。简言之,短暂动词用于完成进行时,均表示一个“重复活动”。

其次,对于有限延续动词来说,它用于完成进行时要分为两种情况:若接表达较长时间的状语表示“重复活动”,若接表达较短时间的状语则表示“延续活动”。

再次,无限延续动词用于完成进行时,不论其所接时间状语表达时间的长短,都表示“延续活动”。

由此可见,have been doing的意义与动词的持续性是密切相关的,所以,这就要求读者对于某个动词的持续性特点要很敏感。

思维训练 6.5 Key

一、请用括号中动词的适当形式填空。

1. Every Sunday they meet in the bar. They ______ (go) there for ten years.

2. You ______ (go) with Nancy for over three years now. Why don’t you pop her the question?

3. Koreans ______ (marry) U.S. soldiers stationed here since the 1950s. The peak years ______ (be) during the 1970s, when more than 4,000 Koreans ______ (marry) U.S. soldiers each year.

4. I ______ (hear) from my girlfriend regularly since I came to America.

5. Larry King ______ (interview) important people for more than 40 years. King ______ (ask) famous people questions throughout his career, having accumulated more than 40,000 interviews. He ______ (talk) with every American president since Richard Nixon.

6. I ______ (run) a mile every afternoon for the past month, but I still ______ (not, be) able to lose more than a pound or two. I wonder if it’s worth it.

7. A: I ______ (call) David for the past half hour, but I keep getting a busy signal.

B: Well, if you don’t get him soon we’ll just have to go to the movies without him.

8. I ______ (smoke) for ten years.

二、请解释下面对话的逻辑关系。

9. A: I’ve been singing since I was two years old.

B: No wonder you’ve lost your voice.