一句話說明

Cursor 是基於 VS Code 的 AI IDE,它的三種互動模式(Composer、Chat、Cmd+K)各有適用場景。這篇從安裝開始,走過設定 .cursorrules、選擇互動模式、到完成一個功能的流程,重點放在怎麼設定才安全。

三種互動模式的差異

Cursor 有三種和 AI 互動的方式,選錯模式會浪費時間或得到不好的結果。

Cmd+K(行內編輯):選取一段程式碼後按 Cmd+K(Windows 是 Ctrl+K),直接在游標位置生成或修改程式碼。適合小範圍的修改,例如「把這個 for 迴圈改成 map」、「加上型別註解」。AI 只看到你選取的範圍和上下文,改動範圍也限制在選取區域內。

Chat(側邊欄對話):按 Cmd+L 開啟側邊欄,和 AI 對話。可以用 @ 引用檔案、資料夾、文件。適合問問題、討論設計方案、請 AI 解釋一段程式碼。Chat 會產生程式碼建議,但你需要手動點 Apply 才會寫入檔案。

Composer(多檔案編輯):按 Cmd+I 開啟。這是 Cursor 的核心功能。Composer 可以同時修改多個檔案,建立新檔案,刪除檔案。適合「幫我加一個使用者登入功能」、「把所有 API endpoint 從 REST 改成 tRPC」這種需要改動多個檔案的任務。Composer 會先產生一個 diff 預覽,你可以逐檔案檢視和接受。

選擇原則:改一行用 Cmd+K,問問題用 Chat,改多個檔案用 Composer。

.cursorrules 設定

.cursorrules 是放在專案根目錄的設定檔,告訴 Cursor 這個專案的慣例和限制。設定得好可以大幅減少 AI 產出不符合專案風格的程式碼。

一個 Express.js + TypeScript 專案的 .cursorrules 範例:

你是一個資深的 TypeScript 後端工程師。

這個專案使用:
- Node.js 20 + TypeScript 5.x
- Express.js 4.x
- Prisma ORM(資料庫是 PostgreSQL)
- Zod 做 input validation
- Jest 做單元測試

程式碼慣例:
- 使用 camelCase 命名變數和函式
- 使用 PascalCase 命名型別和介面
- 所有 API handler 都要用 Zod schema 驗證 request body
- 錯誤處理用自訂的 AppError class,不要用 generic Error
- 不要在 controller 裡直接寫資料庫查詢,使用 service layer

安全要求:
- SQL 查詢一律用 Prisma 的 parameterized query,禁止字串拼接
- 不要把 API key 或密碼寫在程式碼中,從環境變數讀取
- 所有使用者輸入都要經過 sanitize
- HTTP response 不要包含 stack trace

.cursorrules 的內容會被自動附加到每次 AI 請求的 system prompt 中,所以 AI 在產生程式碼時會遵循這些規則。

進階用法:你可以在子目錄放不同的 .cursorrules。例如 frontend/.cursorrules 可以有 React 相關的規則,backend/.cursorrules 有 Express 的規則。Cursor 會根據你目前編輯的檔案位置,自動套用最近的 .cursorrules。

Privacy Mode 設定

Cursor 的 Privacy Mode 控制你的程式碼是否會被用於模型訓練。

在 Cursor Settings → Privacy 中可以找到這個選項。開啟 Privacy Mode 後:

你的程式碼不會被 Cursor 儲存或用於訓練模型。但推論時仍然需要把程式碼片段送到 Cursor 的伺服器(或你選擇的模型供應商,例如 OpenAI、Anthropic)。

如果你選擇使用 API Key 模式(自備 OpenAI 或 Anthropic 的 API Key),程式碼會直接送到對應的模型供應商,不經過 Cursor 的伺服器。這是目前隱私保護程度最高的用法。

Cursor Business 方案額外提供:SOC 2 Type II 認證、SSO 整合(SAML/OIDC)、集中管理所有成員的 Privacy Mode 設定、使用量報表。

飛飛的安全建議:

如果專案包含客戶資料或商業機密,至少開啟 Privacy Mode。如果是受監管產業,建議用 API Key 模式,讓程式碼直接走 Anthropic 或 OpenAI 的企業方案(有 DPA 和合規認證)。

從 Clone 到 PR 的開發流程

以下是用 Cursor 開發一個功能的實際流程:

第一步:Clone 並設定專案。

git clone [email protected]:your-org/your-project.git
cd your-project

在專案根目錄建立 .cursorrules(如果還沒有的話)。建立 .cursorignore 排除敏感檔案:

.env
.env.*
*.pem
config/secrets.*

第二步:建立 feature branch。

git checkout -b feature/user-profile-page

第三步:用 Composer 描述需求。

按 Cmd+I 開啟 Composer,描述你要做的事:

在現有的 Next.js 專案中,新增一個使用者個人資料頁面。
需要:
1. /profile 路由,需要登入才能存取
2. 顯示使用者名稱、email、頭像
3. 可以編輯名稱和頭像
4.  Zod 驗證表單輸入
5.  @/components 裡現有的 Button  Input 元件

用 @ 引用相關檔案讓 Composer 了解現有程式碼結構:@src/components/Button.tsx @src/lib/auth.ts

第四步:逐檔案檢視 diff。

Composer 會產生修改建議,以 diff 的形式呈現。逐檔案看,注意以下事項:

有沒有硬編碼的值(應該放到設定檔或環境變數)。有沒有缺少輸入驗證。有沒有使用者資料在 response 中洩漏不該露出的欄位(例如 password hash)。匯入的函式庫是否是專案已經在用的(避免引入不必要的新依賴)。

第五步:跑測試和 lint。

npm run test
npm run lint

如果測試失敗,可以在 Chat 中貼上錯誤訊息,請 AI 幫忙修正。

第六步:Commit 並發 PR。

git add .
git status  # 確認沒有加到不該加的檔案
git commit -m "feat: add user profile page with edit functionality"
git push origin feature/user-profile-page

常見陷阱

Composer 有時候會重寫整個檔案。如果你只想改一小部分,用 Cmd+K 會更可控。在 Composer 中,如果 AI 對某個檔案改太多,可以點 Reject 只拒絕那個檔案的修改。

@ 引用太多檔案會超出上下文限制。Cursor 的上下文視窗有限,引用太多檔案會導致 AI 看不到所有的內容。通常引用 5-8 個最相關的檔案就夠了。

記得看 AI 新增的 import。Composer 可能會引入專案沒有安裝的套件。接受修改前,確認所有新的 import 都是已經在 package.json 中的依賴。

安全與限制

Cursor 是 VS Code 的 fork,繼承了 VS Code 的擴充套件生態。但 Cursor 自己的 AI 功能是閉源的,你無法完全驗證資料流向。

.cursorignore 可以排除敏感檔案,但如果你在 Chat 中手動貼上敏感內容,.cursorignore 擋不住。團隊規範中要明確禁止在 Chat 中貼入密碼、API Key、客戶資料。

Cursor 的模型切換功能代表你的程式碼可能送到不同的供應商。切換到 GPT-4o 時走 OpenAI,切換到 Claude 時走 Anthropic。不同供應商的資料處理政策不同,要確認都符合你的合規需求。

Cursor 會自動讀取工作區的檔案作為上下文。如果你在同一個工作區開了多個專案(monorepo 或多 repo),A 專案的程式碼可能會被當作 B 專案的上下文送到 AI。敏感專案建議單獨開工作區。

知識檢測

讀完文章後,測試一下你對這個主題的理解。

常見問題

Cursor 和 VS Code 的擴充套件相容嗎?

大部分相容,因為 Cursor 是 VS Code 的 fork。但部分和程式碼補全相關的擴充套件(例如 Copilot、Tabnine)可能和 Cursor 的 AI 功能衝突,建議擇一使用。

.cursorrules 的長度有限制嗎?

沒有硬性限制,但太長會佔用上下文視窗的空間。建議控制在 500-1000 字以內,只寫最重要的規則。細節規則可以放在文件裡,需要時用 @docs 引用。

Cursor 可以用自己的 API Key 嗎?

可以。在 Settings → Models 中可以設定 OpenAI 或 Anthropic 的 API Key。使用自備 API Key 時,程式碼不經過 Cursor 伺服器,直接送到模型供應商。但你需要自己負擔 API 費用,且不享受 Cursor Pro 的速率配額。

從 VS Code 轉移到 Cursor 需要重新設定嗎?

不需要。Cursor 在首次啟動時會自動匯入 VS Code 的設定、擴充套件、快捷鍵和佈景主題。

Composer 和 Chat 可以同時使用嗎?

可以。一般的工作流程是用 Chat 討論設計方案,確認方向後再用 Composer 一次性實作。兩者的對話紀錄是分開的。

相關文章

參考資料

  • Cursor 官方文件
  • Cursor Privacy Policy
  • Cursor Business 方案說明