ORANGE BOOK · CURSOR

第三章 三种对话方式(Tab、Cmd+K、Chat)


一、为什么要分三种?不是越多越好吗?

很多人第一次用 Cursor,遇到所有事情都按 Cmd+I 调出 Composer,让 AI 解决。这就像你需要拧个螺丝结果搬出了电钻——能解决,但浪费、慢、容易过度。

Cursor 设计了三种粗细不同的对话方式:

方式 颗粒度 适合 比喻
Tab 1-10 行 边写边补全 想到一半,AI 帮你补完后半句
Cmd+K 1 段 选中一段精准修改 用涂改液改一行字
Chat 1 个问题 提问 / 讨论 / 不动手 问朋友"这个怎么搞"
Composer/Agent 1 个任务 跨文件 / 多步骤 / 自动执行 直接外包给团队

前三个就是本章主角。第 4 个 Composer/Agent 我们留到 第四章 专门讲。

学会"小事用 Tab、改一段用 Cmd+K、问问题用 Chat",你的体验会立刻提升一个量级。


二、Tab:写到一半 AI 接龙

2.1 这是什么

你打字,光标后面会出现灰色的代码建议。按 Tab 接受,按 Esc 拒绝。

它和你以前用过的"输入法联想"类似,但是聪明很多——它能猜你接下来要写的整段代码、整个函数、甚至整个组件。

2.2 上手感受

新建一个 tab-demo.html,输入:

<!doctype html>
<html>
<body>
  <h1>Hello</h1>
  <p>

写到 <p> 后停一下,你会看到光标后面出现灰色提示,比如 Welcome to my page</p>。按 Tab 接受。

继续:

  <button onclick="

这时它可能会预测你想写一个 alert 或者切换主题的函数,给你一整段建议。再按 Tab 接受。

2.3 它为什么这么准

Cursor 的 Tab 是 Cursor 自家训练的模型,叫做 Cursor Tab。它做了几件事:

  1. 看你当前文件——猜你要写什么。
  2. 看你最近的编辑历史——比如你刚改完一个函数,它知道下一个函数大概率也要这么改。
  3. 看你打开的其他文件——猜你会复用哪些函数 / 组件。
  4. 看你整个项目——通过"索引",知道你的项目里有哪些函数 / 类 / 接口。
  5. 预测你的"下一步"——不只是补齐当前行,它还能"跳着补",比如你改了 A 函数,它会主动告诉你"B 文件里有 3 处也得跟着改"。

延迟大约 150-400 毫秒,比 GitHub Copilot 快接近一倍。

2.4 三种 Tab 的形态

形态 1:单行补全

最常见,你写到一半,它补完这一行。

形态 2:多行补全

你写一个函数签名 function calculateTax(income) {,它直接补出整个函数体。

形态 3:"幽灵编辑"(Ghost Edit)

你按了一下 Tab,光标会自动跳到下一个建议改的位置。比如你刚改了 userName 改成 userId,文件其他地方的 userName 都需要改,按一下 Tab 它跳到第一处并显示建议,再按 Tab 接受并跳到下一处。 这是 Cursor 最爽的功能之一,省下你大量"找替换"的时间。

2.5 如何让 Tab 更准

  • 写注释:在写函数前先写一行中文注释,比如 // 计算税后收入,AI 就知道你要做什么。
  • 写好命名:变量名取得清楚,AI 一眼看懂你的意图。
  • 打开相关文件:你要写的功能用到了 utils/format.js 里的方法,先打开那个文件,AI 就能看到。
  • 保留上下文:不要边写边删,AI 会被"反复横跳"的内容搞糊涂。

2.6 Tab 用得"过度"的标志

如果你发现自己"按 Tab 按到手酸",那一定是用错了。Tab 适合 1-10 行的小补全,超过这个范围,请用 Cmd+K 或 Chat。

2.7 关掉 / 调整 Tab

想做的事 怎么做
临时关 Tab Cmd+Shift+P,输入 Disable Cursor Tab,回车
永久关 Tab 设置 → Models → Tab,关掉开关
改 Tab 接受键 设置 → Keyboard Shortcuts → 搜 cursor tab
部分接受(一个词一个词接受) Cmd+→(Mac)/ Ctrl+→(Win),按一次接受一个词

三、Cmd+K:选中一段精准修改

3.1 这是什么

选中一段代码或文字,按 Cmd+K(Mac)/ Ctrl+K(Win),弹出一个浮窗,输入"想改成什么样",AI 直接改。

它不像 Tab"猜你要写什么",也不像 Chat"等你问问题"——它就是**"指着这段东西说改成 XXX"**。

3.2 上手感受

打开你 第二章 做的 index.html,找到 <h1>李白</h1> 这行:

  1. 用鼠标双击选中"李白"。
  2. Cmd+K
  3. 在弹出的浮窗里输入 加粗、放大到 4em、改成渐变金色
  4. 回车。

AI 直接给你一个 diff,你按 Cmd+Enter 接受。

3.3 Cmd+K 的两种用法

用法 1:改代码

选中一段代码 → Cmd+K → 输入"用 try/catch 包一下这个函数"、"把 for 循环改成 forEach"、"加错误处理"、"翻译成中文注释"。

用法 2:生成新代码

不选中任何东西,光标停在某行 → Cmd+K → 输入"在这里插入一个发送邮件的函数"。 AI 会在光标位置插入新代码。

3.4 Cmd+K 的小技巧

技巧 1:自然语言

你不必用专业术语。直接说"这块红色让我难受,改淡一点"、"这一段太啰嗦了,简化",AI 都懂。

技巧 2:参考其他文件

在 Cmd+K 弹窗里,先输入 @,然后选你想参考的文件,AI 会照着那个文件的风格改。 比如:改成和 @login.js 一样的错误处理风格

技巧 3:连续追问

第一次改完不满意,不用关闭弹窗,直接继续输入"再温柔一点"、"颜色再淡 20%",可以连续微调。

技巧 4:Diff 局部接受

AI 给的 diff 你可以一行一行选择性接受,不必"全部接受"或"全部拒绝"。

3.5 Cmd+K vs Tab vs Chat

你的场景 用什么
我在写代码,AI 帮我接龙 Tab
我看到这段代码不爽,想改 Cmd+K
我不知道该改什么,想先问问 Chat
我要做一件事,涉及好几个文件 Composer / Agent

记住:Tab 不打断你写、Cmd+K 是"指着改"、Chat 是"问问看"


四、Chat:问问题、讨论、不直接动手

4.1 这是什么

Cmd+L(Mac)/ Ctrl+L(Win),在右侧打开一个对话框,可以和 AI 聊任何关于你项目的事。

Chat 的核心是 "问 + 讨论"——它默认不会修改你的文件,除非你点击建议里的「Apply」。

Cursor 3 之后,Chat 和 Composer 在 UI 上越来越像,但是它们的"模式"不同:

  • Ask 模式:只回答问题,不改文件。等同于经典 Chat。
  • Manual 模式:会改你点选的文件,但不会自己跑命令。
  • Agent 模式:会改你的文件 + 跑命令 + 看浏览器,全自动。

本章我们集中讲 Ask 模式(也就是"传统 Chat")。Manual 和 Agent 留到 第四章 详讲。

4.2 Chat 的 5 个最常见用法

用法 1:问"这个项目里 XX 在哪"

你接手了一个新项目,不知道入口文件、不知道 API 在哪。

这个项目的入口在哪?路由怎么注册?

Cursor 会读你的项目,告诉你具体的文件和位置。

用法 2:问"这段代码为什么不工作"

选中一段报错的代码,开 Chat 问:

这段代码报 TypeError,为什么?

Cursor 会分析、定位、解释,并给出"建议怎么改"。

用法 3:问"如果我想 XX,该怎么实现"

比如:

我想给我的简介页加一个"夜间模式自动跟随系统"的功能,怎么做?

Cursor 给方案,但不会直接改文件,等你说"按这个方案改"再改。

用法 4:问"这是个好做法吗"

你写了一段自己也不确定的代码,问:

这样写有什么坑吗?有没有更好的写法?

Cursor 会列出潜在问题、最佳实践、相关文档。

用法 5:让它"帮你看 / 不要改"

有时候你只是想知道,不想 AI 动手:

请只解释,不要改任何文件:
@auth.js 这个登录流程是怎么走的?

加一句"只解释、不要改"非常有用,Cursor 会乖乖照做。

4.3 Chat 的 4 个隐藏技巧

技巧 1:对话历史可以被"重置"

Chat 默认会记住你这次会话的所有内容。但是对话越长 AI 越乱。 按右上角"+"号开新对话,等于"重新开始"。 原则:一个对话 = 一个目标。换目标了就开新对话。

技巧 2:可以"分支"对话

看到一条你不喜欢的回答,鼠标悬停在那条消息上,会出现"重试"按钮。点它,AI 重新回答。 也可以点"在这里分支",从这一条开始新分支,原对话保留。

技巧 3:模型可以中途换

对话中,每条消息上方都有模型选择菜单。一段对话可以中间换模型——前半段用便宜的 Claude Haiku 聊,后半段切到强大的 GPT-5 干活。

技巧 4:把 Chat 内容"导出"

点 Chat 右上角的"…"按钮,可以"Export to Markdown",对话变成一份你电脑里的 .md 文件,方便存档或分享给同事。


五、@ 上下文:让 AI 知道你说的是什么

5.1 为什么要"加上下文"

AI 模型本身不知道你的项目里有什么。每次你和它对话,你都需要"喂"给它相关信息——这就是"上下文"。

Cursor 设计了非常优雅的方式让你"喂":在对话框里输入 @,会弹出一个菜单。

5.2 8 种最常用的 @ 类型

@ 类型 选什么 用来干什么
@File 一个具体文件 让 AI 看这个文件的全部内容
@Folder 一个文件夹 让 AI 看整个文件夹(注意成本)
@Code 你选中的一段代码 精确指向某段代码
@Web 现场搜索网页 让 AI 现场上网搜资料
@Docs Cursor 内置的文档 比如 React、Stripe、TailwindCSS 的官方文档
@Past Chats 历史对话 让 AI 看你之前和它聊过什么
@Git Git 提交记录 让 AI 看最近改了什么
@Cursor Rules 你的项目规则 主动让 AI 遵守某个规则

5.3 @File:最高频的用法

@components/LoginForm.tsx 这个表单为什么提交后没反应?

AI 会读 LoginForm.tsx 的全部内容,再回答。

如果你不带 @,AI 可能要"猜"你说的是哪个表单,或者干脆问你"哪个表单"。

5.4 @Folder:批量喂上下文

当你的问题涉及多个文件时:

@components/ 这里的所有按钮组件颜色不统一,请帮我列出来并提一个改进方案。

注意:@Folder 会把整个文件夹的内容塞给 AI,消耗大量 token。文件多的时候建议明确说"只看 .tsx 文件,忽略 .test.tsx"。

5.5 @Web:让 AI 现场上网

AI 模型的训练数据有"截止日期"。比如某个模型只学到 2024 年 6 月,你问它 "React 19 有什么新特性"它可能瞎编。

加上 @Web

@Web React 19 有什么新特性?给我官方说明的链接。

Cursor 会调用搜索引擎,把搜到的网页内容塞给 AI 再回答。

5.6 @Docs:让 AI 读对的文档

@Docs Stripe 帮我加一个标准的 checkout 流程。

Cursor 会让 AI 读 Stripe 的官方文档(已经预先索引),保证按最新的 API 写。

可以在「设置 → Features → Docs」里手动添加更多官方文档源,比如把你公司内部的文档站点加进来。

5.7 @Past Chats:让 AI 接着上次聊

@Past Chats 上次我们讨论的"夜间模式"方案,照那个方案动手做。

这是 第六章 规则与记忆 之外的另一种"让 AI 记住"的方式。

5.8 一个完整例子

下面是一个高质量提示词的写法:

@Folder src/auth @File README.md @Web
请帮我做一件事:

我们的 auth 模块(在 src/auth)现在只有邮箱登录。
README 里描述了我们的产品定位,请你看一眼。
然后用最新的 NextAuth v5(@Web 找最新文档)加上 Google 登录。

要求:
1. 不破坏现有的邮箱登录。
2. 保持代码风格和现有 auth 文件一致。
3. 改完跑一遍测试。

带上下文 vs 不带上下文,AI 输出质量天差地别。


六、模型选择:选对脑子事半功倍

6.1 Cursor 提供的模型

Cursor 集成了所有主流大模型,你可以随时切换。常见选项:

模型 特长 速度 成本
composer-2(Cursor 自家) 通用编码 + 工具调用 极快
claude-4.6-sonnet 推理强、代码质量高
claude-opus-4-7-thinking-max 最强推理
gpt-5.4-medium 通用 + 多模态
gpt-5.3-codex 代码原生模型
gemini-2.5-pro 长上下文、多模态
deepseek-v3 中文友好、便宜
qwen3-coder 中文友好、本地可跑

6.2 一张"选模型"决策表

你要做的事 推荐模型
让 AI 自动跑一个完整任务(Agent 模式) composer-2claude-4.6-sonnet
写一个复杂的算法 / 难题 claude-opus-4-7-thinking-max
改 UI、调样式 claude-4.6-sonnet
写很长的报告 / 中文文案 gemini-2.5-prodeepseek-v3
简单的小问题 / 想省钱 gpt-5.4-mediumdeepseek-v3
看一张截图,理解 UI claude-4.6-sonnetgemini-2.5-pro
想完全本地、不上云 qwen3-coder(本地 Ollama)

6.3 怎么切换模型

方式 1(一次性切):在 Chat 或 Composer 输入框上方,有一个模型下拉菜单,点开选。 方式 2(默认设置):按 Cmd+, 打开设置,找到「Models」一节,把"默认模型"改成你常用的。 方式 3(按场景):在 第六章 我们会讲怎么用规则文件给"做 UI 任务时自动用 Claude"这种规则。

6.4 三种"特别"模式

模式 1:Auto

让 Cursor 自己根据任务难度选模型。 适合:你不想操心、希望 Cursor 自己平衡速度和成本。

模式 2:Max Mode

切到 Max 模式后,AI 不再"省着用"上下文,能给一次性投喂超大量内容。 适合:你需要让 AI 看一个非常大的项目、读一份长文档、整理一份 200 页 PDF。 代价:贵、慢,按 Token 计费。

模式 3:Thinking 模式

让模型多"想一会儿"再回答。 适合:复杂逻辑题、架构设计、debug 难题。 代价:等待时间从几秒变几十秒。


七、上下文管理的 7 个原则

很多人觉得"AI 写得不好"是因为"AI 笨",其实 80% 是因为没给够上下文。下面 7 条原则,每一条都能让你的输出质量翻倍。

原则 1:相关 > 多

不要无脑 @Folder /只 @ 真正相关的文件。 AI 看的越多,越容易被无关信息干扰。

原则 2:先描述目标,再描述细节

错:改一下颜色 对:我想让登录页的主色调更接近品牌色。当前 src/styles/colors.ts 里的 primary 是 #3b82f6,请改成更接近 #fb923c 的橙色。

原则 3:把"约束"写明白

错:帮我写一个登录 对:帮我写一个登录页面。约束:1. 用 React + TailwindCSS。2. 不引入新依赖。3. 表单验证用浏览器原生 HTML5。4. 提交后跳转到 /dashboard。

原则 4:示例胜过解释

错:让按钮好看一点 对:参考 Stripe 官网首页那个 CTA 按钮的样式(深色背景、白字、圆角 8px、悬停轻微变亮)改我们的主按钮。

原则 5:让 AI 先列方案再动手

对于复杂任务,加一句:

在动手前,先列出你的方案(3-5 个步骤),等我说"好"再开始。

这就是 Plan→Act 模式(第五章 详讲)。

原则 6:分阶段,不要一口气全说完

不要一次让 AI"做完整个项目"。把任务拆成 3-5 步,每一步做完看一眼再做下一步。 这样你能及时纠偏,AI 也不会"自由发挥"得偏出十万八千里。

原则 7:开新对话清零上下文

老对话越长,新指令越容易被旧上下文干扰。不同任务开不同对话。


八、什么时候用哪个:决策树

你想做什么?
│
├─ 我在写代码,写到一半
│   └─ 用 Tab,按 Tab 接受
│
├─ 我看到一段代码 / 文字想改
│   └─ 选中 → Cmd+K → 输入要改成什么样
│
├─ 我想问个问题,不想 AI 直接动手
│   └─ Cmd+L 打开 Chat (Ask 模式)
│
├─ 我要做一件事,涉及多个文件 / 跑命令
│   └─ Cmd+I 打开 Composer (Agent 模式)
│
├─ 我要同时跑多个 AI / 在云端跑
│   └─ Cmd+Shift+P → Agents Window(看第九章)
│
└─ 我要改的是"AI 给的回答"本身
    └─ 在 Chat 里点"重试"或者"分支"

把这个图打印贴在显示器旁,前两周参考一下,之后就肌肉记忆了。


九、综合练习:用三种方式优化你的简介页

打开你 第二章 做的 my-profile/index.html。我们用三种方式分别做一些小优化。

练习 1:用 Tab

<head> 标签里光标停在 <title> 后面,开始打 <meta name="description",看看 Tab 给你接什么。 (它应该会接你的简介内容当 description。)

练习 2:用 Cmd+K

选中页面顶部的导航栏 <nav> 整个块,按 Cmd+K,输入:

1. 给导航栏加一个"半透明 + 毛玻璃"的背景效果
2. 滚动时背景变得不透明
3. 在手机端折叠成汉堡菜单

接受改动,刷新预览看效果。

练习 3:用 Chat

Cmd+L 打开 Chat,问:

@File index.html 这个简介页有哪些可以提升 SEO 的点?只列建议,不要改文件。

AI 会给你一个清单(比如加 og:image、加 canonical、加 sitemap 等)。

练习 4:用 Cmd+K + @

鼠标停在 <head> 里,按 Cmd+K,输入:

@Web 按 SEO 最佳实践,补全 head 区的所有 meta 标签

接受。

做完后,你的简介页就有了"会动"、"会响应"、"SEO 友好"三个升级。全程没写一行代码


本章一图回顾

Cursor 三种对话方式
═══════════════════════════════════════════════
       Tab            Cmd+K          Chat (Cmd+L)
        │              │                │
       1-10 行        1 段             1 个问题
        │              │                │
       接龙           精改             提问
        │              │                │
   "AI 帮我打字"   "改成这样"      "这个怎么搞?"

@ 上下文 8 种
─────────────
  @File / @Folder / @Code / @Web / @Docs
  @Past Chats / @Git / @Cursor Rules

模型选择速记
─────────────
  Agent 大任务    →  composer-2 / claude-4.6-sonnet
  难题深思        →  claude-opus-4-7-thinking-max
  写文案 / 长文本 →  gemini-2.5-pro / deepseek-v3
  本地隐私        →  qwen3-coder(Ollama)

7 条上下文原则
─────────────
  1. 相关 > 多
  2. 先目标后细节
  3. 写明约束
  4. 给参考例子
  5. 让 AI 先列方案
  6. 分阶段不一口气
  7. 新任务开新对话

下章预告

接下来 第四章 Composer 与 Agent 模式,我们正式进入 Cursor 的"重型武器"——能跨多个文件、自动跑命令、自己测试自己改 Bug 的 Agent 模式。我们会一起从零做出第一个完整的"能上线"的小工具:番茄钟。