一、为什么要分三种?不是越多越好吗?
很多人第一次用 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。它做了几件事:
- 看你当前文件——猜你要写什么。
- 看你最近的编辑历史——比如你刚改完一个函数,它知道下一个函数大概率也要这么改。
- 看你打开的其他文件——猜你会复用哪些函数 / 组件。
- 看你整个项目——通过"索引",知道你的项目里有哪些函数 / 类 / 接口。
- 预测你的"下一步"——不只是补齐当前行,它还能"跳着补",比如你改了 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> 这行:
- 用鼠标双击选中"李白"。
- 按
Cmd+K。 - 在弹出的浮窗里输入
加粗、放大到 4em、改成渐变金色。 - 回车。
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-2 或 claude-4.6-sonnet |
| 写一个复杂的算法 / 难题 | claude-opus-4-7-thinking-max |
| 改 UI、调样式 | claude-4.6-sonnet |
| 写很长的报告 / 中文文案 | gemini-2.5-pro 或 deepseek-v3 |
| 简单的小问题 / 想省钱 | gpt-5.4-medium 或 deepseek-v3 |
| 看一张截图,理解 UI | claude-4.6-sonnet 或 gemini-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 模式。我们会一起从零做出第一个完整的"能上线"的小工具:番茄钟。