would have done形式是虚拟语气还是情态动词推测性用法的讨论
原文:第二,说话人站在过去的立场,对过去当时、过去的过去或过去的将来的现实可能性进行推测。由于上下文语境是过去时间,所以这种推测是不能用情态动词的现在形式的,只能是情态动词的过去式,所以这种用法只涉及四个情态动词,即should, would, could, might. 例如:
His suitcase was not there. He might have left. (不可以用may have left)
It was 2 o'clock. She should be having a meeting.
She would come the next day, he guessed.
新概念英语第二册第47课中有这么一句话
He also said that he had found five empty whisky bottles which the ghoust must have drunk the night before. When I suggested that some villagers must have come in for a free drink,
我的疑问:这里同样是站在过去的立场对过去的过去的现实可能性推测为什么不是 should/would/could/might have done呢?
我在那个链接中提到的是一般原则。你给出的《新概念》的例句是一种must的一种用法。
must这个情态动词只有现在式,没有过去式。通常是不用于过去的语境中。但有个例外,即主句为过去时,其后的宾语从句可以用must。
但must不能用于过去语境的主句中。
His suitcase was not there. He might have left. (不可以用may have left)
It was 2 o'clock. She should be having a meeting.
以上二个句子中,表示推测的情态动词都是主句的谓语。这里就不可以用must。
新概念例句中二个must have done都是在宾语从句中使用的。
所以要区分must是用在主句还是从句。
你可以把这一点作为我上次解答的补充。(其实这是must的基本用法:表示过去只能用在宾语从句结构中,不能用在主句中。非推测的must也是如此。)
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!