Cursor 编程实践 — 开发环境部署
文章目录
- Cursor 简介
- 安装下载
- 基础设置
- 设置中文
- 选择大模型
- 自动导入库
- 数据安全
- 从 VS Code 迁移
- 配置 VS Code Server 和 Remote SSH 远程开发扩展
- 编程设置
- 设置编程语言类型
- 基本使用
- 提示词窗口
- 上下文管理
- Tab 代码补全
- 快速编辑代码
- Cursor Rule(System Prompt)
- AI 提效应用
- 1. 文献阅读
- 2. 数据可视化和分析
- 3. MCP 协议
- 实用快捷键
- Hello Cursor
- 学习材料
Cursor 简介
Cursor 是一款基于 VS Code 进行开发的 AI IDE,它不仅继承了 VS Code 的强大特性,还提供了 AI 编程辅助功能,能帮助开发者更高效地完成日常开发工作。
为什么不以 VS Code 扩展的方式实现?Cursor 为了实现如 Cursor Tab 和 CMD-K 等功能需要对 UI 有更多的控制能力,插件模式是不可行的。
Cursor 提供了一系列强大的功能:
- 智能代码补全:根据上下文提供准确的代码建议。
- 实时错误检测:在编码过程中及时发现并修复问题。
- 代码格式化:自动调整代码格式,保持一致的编码风格。
- 快速重构:轻松完成代码重构,提高代码质量。
- 代码诊断:快速定位和解决编程问题。
- 性能分析:帮助优化代码性能。
安装下载
官方网站:https://www.cursor.com/cn
操作系统:MacOS
注册账号、登录,然后下载 dmg 文件并安装。
套餐资费情况:
Pro 跟 Business 的区别:GPT-4、GPT-4o 和 Claude 3.5 Sonnet 都被视为 premium 模型。
开箱即用:建议选择中文,方便打造个人习惯配置。
窗口布局:
基础设置
设置中文
启动 Cursor 后,打开插件市场,搜索并安装 Chinese (Simplified) 插件,重启编辑器即可。
选择大模型
通常来说,Claude 在写代码方面要优一些,而 DeepSeek 会在讨论方面会更好一点。
自动导入库
数据安全
从 VS Code 迁移
Cursor IDE 是 VS Code 的一个分支,所以如果你已经在本地使用了 VS Code,那么可以直接导入 vscode 配置到 Cursor IDE 使用。
配置 VS Code Server 和 Remote SSH 远程开发扩展
https://blog.csdn.net/Jmilk/article/details/128976289
编程设置
设置编程语言类型
- Command + Shift + P
- language
- 选择编程语言类型。
基本使用
官方文档:https://docs.cursor.com/welcome
中文文档:https://cursordocs.com/
提示词窗口
CTRL/CMD + L 打开 ChatBot:支持 Agent、Ask、Manual 三种模式。
上下文管理
默认情况下,Chat 包含当前文件作为上下文。也可以通过从消息中移除 @当前文件标签来提交不包含任何上下文的查询。或者通过 @ 来引入其他上下文。
为了更方便地向 LLM 提供上下文信息,Cursor 内设了 @ 注记符,使用 @ Add Context 注记符能够方便地注入对应的上下文信息到 Chat 对话框中。
- @Files & Folders:从指定文件获取上下文;从指定文件目录信息获取上下文。如果遇到路径问题,可以考虑使用这个注记向 LLM 寻求解决方法。
- @Code:从指定代码块获取上下文
- @Docs:从指定函数或库的官方文档获取上下文,只能从可访问的在线文档里获取上下文,不支持本地文档(使用@Files)。
- @Git:将当前代码仓库的 commit log 作为上下文传递给 LLM。
- @Past Chats:将 Chat 聊天框中的过往的内容作为上下文。
- @Cursor Rules:从 Cursor Rules 获取上下文。
- @Terminals:从 Terminals 指令行获取上下文。
- @Linter Errors:从代码检查错误中获取上下文。
- @Web:从搜索引擎的搜索内容获取上下文,它会将你的提问先向搜索引擎进行搜索,然后从搜索结果里提取上下文到 LLM。
Tab 代码补全
每次按键或光标移动时,Cursor 将尝试根据您最近的更改提出建议。
- 补全将以灰色文本显示。
- 建议修改现有代码,它将作为差异弹出窗口出现在您当前行的右侧。
可以通过按 Tab 接受建议,按 Ctrl/Cmd + → 右箭头部分接受,或通过按 Esc 拒绝建议。
快速开启或关闭 Tab 功能。
快速编辑代码
- ⌘ K:使用 AI 来编辑和编写代码。
- 若想生成新代码时,只需在未选中任何内容的情况下输入 ⌘ K。
- 若想编辑旧代码时,可先选中部分代码,点击 Edit,并描述需要如何更改。
Cursor Rule(System Prompt)
# Role
你是一名极其优秀具有20年经验的产品经理和精通所有编程语言的工程师。与你交流的用户是不懂代码的初中生,不善于表达产品和代码需求。你的工作对用户来说非常重要,完成后将获得10000美元奖励。# Goal
你的目标是帮助用户以他容易理解的方式完成他所需要的产品设计和开发工作,你始终非常主动完成所有工作,而不是让用户多次推动你。在理解用户的产品需求、编写代码、解决代码问题时,你始终遵循以下原则:## 第一步
- 当用户向你提出任何需求时,你首先应该浏览根目录下的readme.md文件和所有代码文档,理解这个项目的目标、架构、实现方式等。如果还没有readme文件,你应该创建,这个文件将作为用户使用你提供的所有功能的说明书,以及你对项目内容的规划。因此你需要在readme.md文件中清晰描述所有功能的用途、使用方法、参数说明、返回值说明等,确保用户可以轻松理解和使用这些功能。## 第二步
- 你需要理解用户正在给你提供的是什么任务。### 当用户直接为你提供需求时,你应当:
- 首先,你应当充分理解用户需求,并且可以站在用户的角度思考,如果我是用户,我需要什么?
- 其次,你应该作为产品经理理解用户需求是否存在缺漏,你应当和用户探讨和补全需求,直到用户满意为止;
- 最后,你应当使用最简单的解决方案来满足用户需求,而不是使用复杂或者高级的解决方案。### 当用户请求你编写代码时,你应当:
- 首先,你会思考用户需求是什么,目前你有的代码库内容,并进行一步步的思考与规划
- 接着,在完成规划后,你应当选择合适的编程语言和框架来实现用户需求,你应该选择solid原则来设计代码结构,并且使用设计模式解决常见问题;
- 再次,编写代码时你总是完善撰写所有代码模块的注释,并且在代码中增加必要的监控手段让你清晰知晓错误发生在哪里;
- 最后,你应当使用简单可控的解决方案来满足用户需求,而不是使用复杂的解决方案。### 当用户请求你解决代码问题是,你应当:
- 首先,你需要完整阅读所在代码文件库,并且理解所有代码的功能和逻辑;
- 其次,你应当思考导致用户所发送代码错误的原因,并提出解决问题的思路;
- 最后,你应当预设你的解决方案可能不准确,因此你需要和用户进行多次交互,并且每次交互后,你应当总结上一次交互的结果,并根据这些结果调整你的解决方案,直到用户满意为止。## 第三步
- 在完成用户要求的任务后,你应该对改成任务完成的步骤进行反思,思考项目可能存在的问题和改进方式,并更新在readme.md文件中
AI 提效应用
1. 文献阅读
PDF 文档导入功能
翻译:对比其他的翻译工具,可实现逐句翻译对照
储存文档历史:版本控制,点击“时间线”,会查看到历史修改的记录。
2. 数据可视化和分析
例如:我现在有关于银行客户的数据样例,主要想做“银行信用:对银行客户的评分判别”分析,请帮我生成 python 代码并且分析。
AI 编写代码与运行。
3. MCP 协议
https://cursordocs.com/docs/advanced/model-context-protocol
实用快捷键
- Tab:自动填充。
- Ctrl+K:编辑代码。
- Ctrl+L:回答用户关于代码和整个项目的问题,也可以编辑代码(功能最全面)。
- Ctrl+I:编辑整个项目代码(跨文件编辑代码)。
Hello Cursor
Prompt:
帮我创建一个PC网站,功能如下:
1. 有一个上传图片的入口,可以上传多个图片。
2. 有一个合并的按钮,点击合并按钮可以将上传的图片合并在一起显示,合并的图片可以下载。
每次执行 CLI 之前都需要认为确认:
自动编写项目代码:
自动启动 Web 服务器:
使用验证。
继续扩展功能,拖拽功能优化。
合并图片的区域要实现如下功能:
1、图片可以随便拖拽改变顺序,比如图1在图2的右边,图3在图1的下面。
2、你可以做一个类似画板一样的功能。
如果遇见 bug 了,直接描述问题让 Cursor 修复。
打开浏览器控制台查看具体的错误信息。
把错误信息输入到 Cursor 进行修复。
最终得到了想要的效果。
学习材料
- https://learn-cursor.com/wiki/user-guide/code-completion
- https://cursor101.com/zh