Claude CodeCursor工作流日常开发

Cursor + Claude Code 日常开发完整工作流

Cursor 内置 AI(Tab、Cmd+K、Cmd+L、Composer)与 Claude Code CLI 协同使用的完整工作流,包含能力对比、典型一天开发流程拆解、Rules 与 CLAUDE.md 协调、真实组件开发案例。

· 阅读约 12 分钟

Cursor 自带四把 AI 武器:Tab 补全Cmd+K 内联编辑Cmd+L 聊天Composer 多文件编辑。再加上在 Cursor 终端里跑的 Claude Code CLI Agent,等于一个项目里同时挂着五种不同节奏的 AI。新手最容易踩的坑是「样样都用 Composer」或「样样都丢给 Claude Code」,结果该用 Tab 的地方反复打开聊天框,该跑 Agent 的活又分十次手动改。本文按一个真实开发日的节奏,把五种工具该怎么各司其职讲清楚。


五种 AI 的能力区分

工具触发方式上下文范围强项不该用它做
Cursor Tab打字时自动当前光标附近 ~30 行重复模式、变量名补全、import 自动加写新功能逻辑
Cmd+K选中代码后按 Cmd+K选中片段 + 文件上下文局部重写、转换格式、改函数签名跨文件改动
Cmd+L侧边栏聊天手动 @ 文件问代码含义、讨论方案、查 API 用法大量改动
Composer (Cmd+I)多文件编辑面板自选多个文件中等规模改动、生成 3-5 个新文件跑测试 / 长 Agent 任务
Claude Code CLI终端 claude整个项目 + 工具调用跨十几个文件改动、跑测试 / lint / 安装包、长任务单行小修小补

一句话归纳:改一行用 Tab,改一段用 Cmd+K,问一段用 Cmd+L,做一个 feature 用 Composer,跑大重构 / 完整 feature + 测试 + 构建用 Claude Code。


一天典型开发流程的逐步拆解

假设今天的任务是给一个 Next.js 项目加一个「用户收藏夹」功能:新增 UI 组件、API 路由、数据库表、路由跳转、单元测试。

上午:探索阶段(Cmd+L 主场)

打开项目后第一件事不是写代码,是问:

@app/api @prisma/schema.prisma 现有的用户系统是怎么组织的?
认证用的是什么方案?数据库表关系画一下。

这种只读理解类问题走 Cmd+L 最划算——它不会乱改文件,回答完关上聊天就行。Claude Code CLI 也能干同样的事,但代价是要切到终端、它会在项目里跑各种 lsgrep、读完文件占 token,对纯问答来说太重。

上午稍晚:搭骨架(Composer 出场)

理解清楚后,让 Composer 一次性创建出几个空文件:

打开 Composer (Cmd+I),输入:

新增以下文件骨架(不实现具体逻辑,先把文件结构和类型签名定下来):
- app/api/favorites/route.ts (POST 加收藏、DELETE 删收藏、GET 列表)
- components/FavoriteButton.tsx
- components/FavoriteList.tsx
- lib/favorites.ts (业务逻辑层,调 prisma)
- types/favorite.ts

Composer 的好处是生成完所有文件后会在面板里集中展示 diff,可以一个个 Accept 或 Reject,整个过程在编辑器里完成。这一步走 Claude Code CLI 也行,但 CLI 默认会逐个文件确认,节奏比 Composer 慢一拍。

上午后段:填充逻辑(Cmd+K 高频)

骨架有了,挨个文件填实现。这一步 Cmd+K 是主力:

打开 lib/favorites.ts,选中 addFavorite 函数的空壳,按 Cmd+K

用 prisma.favorite.create 实现,userId 从参数拿,
重复添加要返回已存在错误(用 P2002 unique constraint 判断)

Cmd+K 改完后回车 Accept,立刻进入下一个函数。这种「这一段我知道要写啥,让 AI 帮我打字」的场景,Cmd+K 比聊天框快十倍:不用切焦点,不用复制粘贴。

中午:写测试(Claude Code CLI 第一次登场)

业务代码写完后,测试是典型的「重复模式 + 跑得起来」任务——这种活交给 CLI Agent 最合适。在 Cursor 内置终端按 Cmd+` 打开终端:

claude

进入 REPL 后:

为 lib/favorites.ts 的所有导出函数写 Vitest 单元测试,
mock 掉 prisma,测试要覆盖正常路径和错误路径。
写完后跑 npm test 确认通过。

为什么这里切 CLI?因为:

  1. 要新建 lib/favorites.test.ts、可能修改 vitest.config.ts、可能装 @vitest/coverage-v8 —— 跨文件 + 跑命令
  2. 写完要立刻跑测试看是否通过,Composer 不会自己跑 npm test,Claude Code 会
  3. 失败了 Agent 会自己看错误改测试,循环到通过为止

这就是 Agent 模式的核心价值:带反馈循环的多步骤任务

下午:接 UI(混着用)

回到组件文件 FavoriteButton.tsxTab 补全会自动完成大量样板——写到 const handleClick = async () => 时它会猜出 fetch 调用,多数时候按 Tab 就够。

写到中间发现 props 类型没定义好,选中 props interface 按 Cmd+K

加上 favoriteId 字段(number),onToggle 回调改为返回 Promise<void>

写完一整个组件后,想加个 loading 状态但不知道项目里别人怎么写的,按 Cmd+L

@components 项目里其他按钮组件 loading 状态是怎么实现的?
给我看一两个例子

看完仿照写。Tab + Cmd+K + Cmd+L 三件套是日常编码 80% 的时间花的地方。

下午晚些:路由 + 国际化(Claude Code 第二次登场)

加完组件后还剩一堆零散收尾活:

  • app/(main)/profile/page.tsx 里挂载 FavoriteList
  • messages/zh.jsonmessages/en.json 里加 12 个翻译 key
  • app/sitemap.ts 里加入新路由
  • 在 README 的功能列表里加一行

这些都是「小但分散」的活,让 Claude Code 一次跑完:

我刚加了收藏夹功能(FavoriteButton、FavoriteList、/api/favorites)。
帮我做以下收尾:
1. 在用户 profile 页挂上 FavoriteList
2. 国际化 key 加到 zh.json 和 en.json,按现有命名约定来
3. sitemap 加新路由
4. 更新 README 的功能列表

CLI Agent 会自己读相关文件、按现有风格补改、最后报告改了哪些文件。


.cursorrules 和 CLAUDE.md 怎么协调

两个文件做的事几乎完全一样:告诉 AI 项目约定、技术栈、风格偏好。但 Cursor 内置 AI 只读 .cursorrules(或新版的 .cursor/rules/*.mdc),Claude Code CLI 只读 CLAUDE.md。如果项目里两个都有,又写得不一样,结果就是 Composer 改的代码风格和 Claude Code 改的不一致。

推荐做法:单一真相源 + 符号链接 / 引用

方式一:写 CLAUDE.md 为主,.cursorrules 引用:

# 项目根目录
echo "请参考 ./CLAUDE.md 中的所有项目约定与代码规范。" > .cursorrules

方式二(macOS / Linux):

ln -s CLAUDE.md .cursorrules

Windows 用 mklink:

mklink .cursorrules CLAUDE.md

方式三:把核心规则写到 .cursor/rules/project.mdc(Cursor 新格式,支持 frontmatter),然后在 CLAUDE.md@import 同一份内容。

应该写在 CLAUDE.md/.cursorrules 里的内容:

  • 技术栈版本(Next.js 14 App Router、Prisma 5、Tailwind v4 等)
  • 包管理器(pnpm,不是 npm)
  • 测试框架与运行命令(pnpm test 不是 npm test
  • 文件命名约定(kebab-case 还是 PascalCase)
  • 状态管理选型(Zustand,不要 Redux)
  • 国际化方案(next-intl,文案放 messages/{locale}.json
  • 提交信息格式(Conventional Commits)
  • 不要碰的目录(generated/migrations/old/

配合不顺的常见场景及对策

场景现象对策
Cursor 改一半切到 Claude Code 接着改Claude Code 读到的是磁盘上保存过的版本,没读到 Cursor 编辑器里未保存的新代码切 CLI 前 Cmd+S 保存全部(Cmd+Option+S 保存所有打开的文件)
Claude Code 改完文件,Cursor 编辑器没刷新Cursor 还显示旧内容,按 Save 会把旧内容覆盖回去让 Cursor 在外部文件改动时自动重载:设置里搜 files.autoRefresh,开启
Composer 和 Claude Code 同时改同一个文件两边各改一半,互相覆盖一次只用一个工具改一个文件,需要并行就明确分文件
Cursor Tab 在 Claude Code 生成的代码里乱补全Tab 想接着补但接得不对接受 Claude Code 的改动后,关闭再打开文件,让 Tab 重新建索引
两边对项目结构的理解不一致Cursor 以为是 Pages Router,Claude Code 认为是 App Router明确写到 CLAUDE.md / .cursorrules 里
Claude Code 跑测试时 Cursor 也在跑 lint端口冲突或文件锁跑长任务前关掉 Cursor 的 ESLint watch 模式

Cursor Pro 订阅 vs Anthropic API 的取舍

Cursor Pro 月费 20 美元,含 500 次「Fast Premium」请求(GPT-4、Claude)。Anthropic 直接订 API,按 token 计费,Claude Sonnet 大约每百万输入 token 3 美元、输出 token 15 美元。

维度Cursor ProClaude Code (Anthropic API / Max 订阅)
计费方式月费固定按用量(API)或 Max 月度订阅
包含的模型多家(GPT、Claude、Gemini)仅 Claude 系列
适合人群日常用 Tab + 聊天为主重度跑 Agent、长任务
长任务成本一个大任务可能秒杀几十次额度按实际 token 算,可控
隐私经 Cursor 服务器中转直连 Anthropic

推荐组合:

  • 同时订 Cursor Pro(用 Tab、Cmd+K、Cmd+L 不心疼)
  • 加订 Claude Max 或开通 API 给 Claude Code CLI(跑 Agent 长任务)

只订 Cursor Pro 也能用 Claude Code(CLI 单独登录 Anthropic 账户),但 CLI 跑 Agent 不消耗 Cursor 额度,本质是两个独立账单。重度用户两边都得花钱。

如果预算紧张,优先保 Claude Code 订阅 —— Tab 和 Cmd+K 在 Cursor 免费版里也能用,只是模型差一些;而 Agent 任务没有 Claude Code 替代品,省不了。


实战搭配建议

最后归纳成一条主线,方便贴在 CLAUDE.md 的开头:

  1. 不知道做什么 → Cmd+L 问
  2. 知道要写啥、就这一段 → 写起来,让 Tab 接
  3. 知道要写啥、但懒得打字 → 选中按 Cmd+K
  4. 要新建 3-5 个文件、改动局限在一个 feature 内 → Composer
  5. 跨十几个文件 / 需要跑测试 / 需要装包 / 需要看 log 调试 → Claude Code CLI
  6. 改完了不确定对不对 → Cmd+L 让它解释一遍 diff

按这个顺序选工具,不会卡壳。


相关阅读

其他编辑器工作流:

相关编辑器安装教程: