write a book中的write为终结性持续动词。这种动词表示事件意义时,只要不用进行体(包括完成进行体),都表示事件的终结,即动作结束了,而且语义的重心在动作持续一段时间后的结束上。例如:He wrote a book last year. He has written a book. 这二个句子虽然时态不同,但都没有用进行体。所以二个句子中的写书的动作都是完成的。而且这二个句子都不能与持续时间状语连用。
如果这种动词表示的事件没有结束,就必须使用进行体。不用进行体是错误的。例如:
When I saw him, he was writing a book. (用wrote为语法错误)。
He has been writing a book for six months. (用has written为语法错误)。
但teach作为不及物动词或teach English中的teach为非终结性持续动词。此类动词表示事件意义时,通常需要借助时间状语表示动作的结束,例如:I taught them English for 2 hours. 如果没有时间状语,则为习惯意义:I taught (them) English. 这种习惯也可以通过时间状语表示习惯的终结:I taught English for two years and then I joined the army.
此类动词表示长期习惯时,用一般体:I teach English.
如果教英语是一个人临时的工作(即临时、短期的、预计会结束的习惯,则谈论这个习惯时就需要用进行体。I’m teaching English at a night school these days.
一个长期习惯迄今为止持续了多久,用现在完成时+持续时间状语表示(持续时间状语为必具性的。否则就不是习惯意义)例如:
I have taught English for 10 years.
一个临时习惯迄今为止持续了多久,用现在完成时+持续时间状语。此时,时间状语是选择性的,而不是必具性的。没有持续时间状语,仍然可以表示一个临时习惯持续到现在,只是没有明确说明持续了多久而已。这不用于现在完成时。
I have been teaching English (for 3 months).
夸克曾在英国做过一项调查,问被调查者这二个句子有无差别。有的人认为二者有如上差异。即现在完成进行时表示的是临时的习惯或状态,故时间状语不宜为很长的时间。但也有人认为二者没有差异,可以替换使用。
无论用现在完成时还是现在完成进行时+持续时间状语,谓语表示的情景都是可能在说话时刚结束(不久),也可能还在持续并延伸到将来。所以是否在说话时结束并不是这二个时态的重点。重点是在现在以前,谓语表示的情景是持续的。这才是关键。
也有人认为现在完成时可能暗示谓语表示的情景在说话时已经结束了。现在完成进行时表示的情景暗示还会继续下去。但实际情况是现在完成进行时也完全可以表示刚结束不久的临时习惯。例如:I have been teaching English for six months. But I quit yesterday.
因此,现在完成时和现在完成进行时本身不足以区分谓语表示的情景是否结束了,而是要根据上下文语境才能做出正确的判断。
work, live, study, learn等少数动词的情况与此类似。
例如:
I live in China. 长期状态。
I am living in China. 临时状态。
I have lived in China for 20 years. 长期状态迄今持续的时间。可能还会继续住下去,也可能移居美国时在北京机场说的话。
I have been living in China for a year. 临时状态迄今持续的时间。可能还会继续在中国生活,也可能回国时在北京机场说的话。
I have lived/been living in China for 20 years. 认为二个时态在这里无差异的人说的话。