上一篇讲了怎么在长句里把谓语找出来。找到之后,动词的形式才开始真的传递信息,而第一个要读出来的就是时态。但很多人手里的时态是一张 12 格的表,每格一个公式,学的时候背过,用的时候凭感觉。

先看一组句子:

I lived in Beijing for ten years. I have lived in Beijing for ten years.

中文都能翻成“我在北京住了十年”,但这两句说的不是一回事。第一句意思是:那十年已经过去了,我现在不住北京。第二句意思是:这十年从过去一直延续到现在,我此刻还住在那儿。同一个动作、同样十年,两种说法都对,因为英语的动词同时在交代两件互相独立的事。

时态其实是两个问题的答案

第一问是 什么时候:这件事发生在说话的这一刻之前、同时,还是之后。这是时间,过去、现在、将来。

第二问是 什么样:说话的人选择从哪个角度去看这个动作——把它当一个整体,还是推进到它内部,还是把它和现在连起来。这是“体”(aspect)。Collins 的语法说明把两者分开讲得很清楚:英语真正用动词形态区分的是两个时态,现在和过去;进行体和完成体则是在这两个基本形式之上叠加的观察角度 1

顺带解决一个常见困惑:为什么 will 后面的动词永远是原形?因为英语并没有一个靠变形来表示将来的时态。Stanford 哲学百科在梳理时态时也指出,英语区分的是“过去”和“非过去”,将来由助动词 will 承担,所以有些语言学家干脆不把将来算作一个时态 2。这不影响你使用,但它解释了 will 为什么不受主语影响。

时间信息只写在谓语串的最左边

回到上一篇的三步定位法。你已经能把长句拆到谓语,比如 He has been watching TV。这时注意一件事:这一串词里,变形的只有第一个。

  • He has been watching. / They have been watching. —— has/have 随主语变,been watching 不动。
  • He had been watching. —— 时间从现在的 have 换成过去的 had,后面两个词原样不动。

所以“什么时候”这条信息,只钉在这一串词最左边的那个词上。这也意味着判断时态时你根本不用看整句,只看那个还会变形的词:worked 是过去,works 是现在,will work 是将来。后面跟着的东西负责另一件事。

三个状态各自回答什么

一般体 不给动作内部拍特写。动作发生、存在、反复出现,说话人不关心它进行到哪一步。He works at a bank 说的是一种身份或习惯,不是“他正在银行里”。

进行体(be + -ing)把镜头推近到动作内部:正在进行、还没结束,通常还带一点临时的味道。同样在餐厅工作,Harry 说 I'm working at a restaurant,意思就偏向“先干着,可能很快换地方”;老板说 Harry works at my restaurant,说的就是一个固定事实 1

完成体(have + 过去分词)不拍动作内部,而是把镜头拉远,在“之前发生过的事”和“现在这个点”之间画一条连线。这里最容易误解:完成体的重点不是“完成”两个字,而是那条连线。British Council 的语法页写得很直接——用现在完成时,是把过去的事件和现在的结果或影响明确连起来;用一般过去时,只是把一个动作当作历史陈述,不含这层连接 3

所以 I have finished the report 的信息不止“我写完了”,还包括“所以现在可以聊别的了”。

公式不用背,坐标拼一遍就够

把两个问题交叉,得到九格。用 work 填满:

过去现在将来
一般workedwork / workswill work
进行was workingam workingwill be working
完成had workedhave workedwill have worked

看这张表的时候,别去记九个公式,只记一条拼装规则:先把最左边的助动词按“时间 + 主语”变好,右边的词形全部固定。

将来完成进行 will have been working 就是这么拼出来的:will 交代将来,have 交代完成,been 交代进行,working 是实义动词。再加一格也难不倒你:现在完成进行 have been working,说的是“从过去一直持续到现在、而且可能还在继续”,日常里非常常用。

最常混的两组对比

一般过去 vs 现在完成。 判断钥匙是时间有没有结束。只要你说出了具体的、已经过去的时间——yesterday、last week、in 2019、when I was a child——就只能用一般过去。British Council 明确列出,现在完成不能和这类“已结束的过去时间”连用,所以 I have seen that film yesterday 是错的 4。反过来,时间范围还没结束(today、this week、so far),或者你压根不给时间、只想说“有这回事并且和现在有关”,就用现在完成:Have you seen Helen today?

对比两组:

I've broken my leg. —— 腿现在是断的,说的是我眼下的处境。 I broke my leg last year. —— 去年的事,已经过去了。

一般 vs 进行。 一般体看长期和习惯,进行体看此刻和临时。What do you do? 问你做什么工作;What are you doing? 问你手上在干嘛。这里有一条边界值得单独记住:表示状态而不是动作的动词——know、believe、belong、like、need——通常不用进行体。I know the answer 对,I am knowing the answer 不对,因为“知道”内部没有过程可以让镜头推进去。

拿到任何时态,先问两个问题

不要一上来就回忆公式,按顺序问:

正在绘制图表

问一决定最左边的词怎么变,问二决定右边搭什么结构。两个答案合起来,就是你要的那个形式。这套流程比查表慢不了多少,但它不需要你记住十二个名字。

这套框架不覆盖的地方

两处例外要说清楚,免得你以为找到万能钥匙。

第一,过去时不只表示过去。If I were you、Could you help me? 里没有过去的时间,说话人是用“远”的形式表示不真实或客气。Collins 把这种现象概括为“距离”:英语的过去形式除了时间上的远,还能表达现实上的远和社交上的远 1

第二,时态不等于时间。新闻标题 Earthquake kills 200 用现在时,事件发生在昨天——用过去时会显得不够即时,不够“新闻” 1。所以真正稳定的规律不是“某个时态对应某种场合”,而是把时态拆成时间和状态两个问题分别回答。

回到开头那两句。I lived 和 I have lived 都在说北京、都在说十年,区别只在于说话的人想不想让这十年继续连着现在。下次写句子卡住,不用翻表,先问自己两句:这件事站在哪个时间点上说?我是在整体看它、在过程里看它,还是把它和现在连起来看?