不學文法怎麼說英語:開口前先問時間窗口
不學文法怎麼說英語:用一個問題和時間錨點,在開口前選對過去簡單式與現在完成式。

目錄
你正在跟同事聊一趟旅行,而那句話已經從嘴裡溜出來:I have gone to Kyoto last month. 你一邊說一邊聽見它,而規則你昨晚明明還記得。問題不在知識;問題是規則總在動詞之後才到。
這篇文章要談的是:不學文法怎麼說英語,在那個當下該怎麼做決定,而不是再解釋一次時態系統。它講的是如何在腦中不帶文法術語地說英語:在動詞之前先問一個問題,再加上一份你半秒內就能認出的時間錨點清單。
為什麼規則總是來得太晚
寫作時,你可以回頭看句子再修改。口說沒有編輯視窗:等到你想起哪種形式配哪種時間,動詞早已出口,聽者也在腦中建好畫面了。
更用力地學規則並不能解決這件事:它有兩個名稱、大約六種用法,而提取成本偏偏落在你最少注意力可用的時候。把決定往前移,移到答案看得見、而不是靠背誦的地方——時間片語。
如何不靠文法術語說英語
整個選擇可以簡化成一個問題,在你要定下動詞之前先問:這段時間已經結束了,還是仍然開放?
- 已結束的期間:那一天、那一週或那趟旅行已經結束,所以那段期間內沒有任何事還能改變。用過去簡單式。
- 開放的期間:這段期間包含現在,所以情況仍可能改變。用現在完成式。
這個問題問的是時間,不是動詞。你不是在把動作分類成完成或未完成——那種解釋會讓這個決定在即時對話中顯得不可能。你是在判斷一扇窗口是否已經關上。

說話的人很少抽象地選時態。他們先說出時間,形式隨後跟上。
八個關閉期間的錨點,四個保持開放的錨點
這些錨點指向一個聽者能定位、而且已經結束的時間。
yesterday— 那一天已經結束。last night— 那一夜已經結束。last week— 所指的那一週已經結束。two days ago— 計算已經結束。in 2019— 那一年已經封閉。on Monday— 已經過去的某個週一,不是即將到來的那個。when I was at school— 你人生中的那個階段已經結束。during my last job— 那份工作已經結束。
這些錨點讓窗口保持開放,因為它們包含現在,或沒有說出結束點。
so far— 這段期間一直延續到此刻,而且可能繼續。this week— 這一週包含今天。ever— 這段期間是你的人生直到現在。already— 事件比預期更早發生,而且結果仍在眼前。
還有兩個訊號屬於開放組,雖然它們不是時間片語:since 標出一個持續到現在的起點,yet 表示直到現在。兩者都很難和已關閉的窗口並存,這就是為什麼 I have seen him yesterday 聽起來不對,而 I saw him yesterday 不會。
同一主題的十二組對照
每一列的主題不變。只有窗口改變,而動詞跟著窗口走。
| 情境 | 已結束期間 | 開放期間 |
|---|---|---|
| 一趟旅行 | We booked the flight last week. | We have already booked the flight. |
| 一份報告 | I sent the report on Friday. | I have already sent the report. |
| 一份工作 | She left her last job in 2021. | She has changed jobs three times. |
| 一部電影 | I saw that film last night. | I have seen that film twice this year. |
| 一次配送 | The parcel arrived two days ago. | The parcel has just arrived. |
| 一通電話 | I called the client yesterday. | I have called the client twice today. |
| 一個專案 | The team finished the migration in June. | The team has finished the migration. |
| 一間飯店 | I stayed there when I was in Berlin. | I have stayed there before. |
| 一份預算 | We agreed the budget on Monday. | We have agreed the budget. |
| 一門課程 | He took the course in 2019. | He has taken the course. |
| 一封電子郵件 | I wrote to her last week. | I have written to her already. |
| 一份工作邀約 | They offered me the job two days ago. | They have just offered me the job. |
把一列大聲讀出來,只改變窗口:讓錨點發揮作用,而不是靠規則。
兩秒自我檢查
在對方還沒問完問題時,默默依序做三個動作。
- 把時間片語放在最前面。
- 問自己那段期間是否包含現在。
- 選定形式,繼續說下去。
第一個動作讓其餘步驟變得輕鬆。像 last week 這樣的片語,是你已經擁有的語塊;先說出口,就能在動詞出現前先定調。關閉的語塊,用過去簡單式;開放的語塊,用現在完成式。

這個檢查也能反過來用。如果你一邊說一邊聽到錯誤形式,先把句子說完,再重述窗口:Sorry, that was last month.
當兩者都正確,而意思會改變
有一種模式會讓學習者覺得規則不可靠:兩種形式對同一天都可能是正確的,而選擇會改變意思。
I didn't have any lunch today. — 午餐的窗口已經關閉;時間晚了,你現在不會去吃。
I haven't had any lunch today. — 這一天仍然開放,午餐仍有可能。
時態不是裝飾:它告訴聽者情況是否仍能改變。
美式英語還有一個值得認出、而不是糾正的例外。在那裡,過去簡單式常取代現在完成式,尤其是和 already、yet 一起出現時,所以 Did you eat yet? 很正常,而英式用法更偏好 Have you eaten yet? 不要把它當成錯誤。
母語干擾
如果你的母語只用單一形式,或用助詞而不是時態來標記過去時間,你的直覺就會用同一個形式應付兩種工作。這就是為什麼這個錯誤能撐過多年學習:你翻譯的不是一條規則,而是一個從來不需要這種區分的習慣。
有兩種失誤值得你在自己的錄音裡留意。
- 現在完成式加上已關閉的錨點:
I have seen him yesterday.改說I saw him yesterday. - 過去簡單式加上
since:I work here since 2020.改說I have worked here since 2020.
兩種失誤都有一個原因:錨點和動詞是分開選的。
今晚要錄的十個提示
每個提示錄一個回答,各錄一次,不要先寫稿。
Tell me what you did last weekend.Describe a trip you took last year.What have you finished so far this week?Tell me about a film you have seen twice.What did you do on your first day at your current job?Have you ever lost something important?When did you last speak English outside work?What have you already done today?Tell me about a project your team finished last year.What have you learned in the last month?
然後聽一次,手裡拿著筆,只專注一件事:錨點有沒有在動詞之前出現?標記錨點,不要標記錯誤。已關閉的錨點配上現在完成式,就用過去簡單式再說一次;反過來也一樣。
會回話的練習夥伴會用正確的方式提高難度,因為你無法預先準備下一句。HiBay 的應用程式提供 AI 對話練習,並針對發音、文法和詞彙給予回饋,其 App Store 說明也列出雅思口說練習。
常見問題
我需要在上口說前就知道時間片語嗎?
不用,但你需要在動詞之前知道它,而那是小得多的窗口。大多數人是在句子成形時找到片語,這樣已經夠早:錨點通常會在主要動詞之前出現。如果它太晚才到,就把句子說完,並用簡短的補充重述窗口。唯一需要事先規劃的情況,是包含好幾個事件的敘事:先把錨點的順序定下來。
為什麼我說話時會混用過去簡單式和現在完成式?
因為這兩種形式是以一個習慣、而不是兩條規則的方式儲存。在時間壓力下,你會提取最常用的形式,然後時間片語才出現並與它矛盾。從錨點出發可以消除這個衝突,因為窗口是在形式之前選好,不會晚到。

