简介:
Cursor - The AI Code Editor(官网)
Cursor 是一款真正意义上的 AI 编辑器。
Cursor 基于 VSCode 开发的,大多数其他编程工具都是 VSCode 的插件。因此,Cursor 能创造性地构建一个高效的人机协作编程环境。
入门教程:
Cursor入门教程1 - Tab功能的使用 | cursor101.com
根据当前的代码上下文,自动生成代码补全的建议,用户直接通过Tab键就可以完成代码的修改与补全。
Cursor最强的优势在于它的代码编辑能力,不仅可以插入代码,而且可以对现有的代码进行修改。
Tap功能使用:
多行补全
最基础的功能就是代码生成,直接根据当前光标所在的位置,生成代码补全建议。Cursor的Tab功能支持多行编辑,可直接生成多行代码补全建议。Tab功能会根据你当前光标处的修改去生成多行代码补全建议。

智能重写(Smart Rewrite)
Cursor的Tab功能可以聪明地改写你已经写好的代码。

光标预测(Cursor Prediction)
上面介绍的功能都是Cursor基于当前光标的位置,再结合代码的上下文,进行补全或修改提示;但Cursor还能预测你下一步可能要编辑的位置。

技巧
- Cursor的Tab功能不仅限于主编辑窗口,在"Go to Definition"或"Go to Type Definition"的预览窗口中也可以使用。这个特性在添加新的函数参数时特别有用。
eg:当你需要修改一个函数定义,然后快速修复所有使用该函数的地方时,这个功能就非常方便。
这个功能可以提高代码重构的效率,使得添加新功能或修改现有接口变得更加简单和快速。
- 按
Ctrl/⌘
和右箭头来接受建议的下一个单词。
提示栏--⌘+K
Tab功能是AI辅助编码的最直接形式(直接生成代码),那么提示栏(Cmd K)就是用户需要引导AI怎么做的最快速方式。
⌘ K 可让您使用 AI 编辑和编写代码。要编辑,请尝试选择一些代码,单击“编辑”,然后描述应如何更改代码。要生成全新的代码,只需键入 ⌘ K 而不选择任何内容。

与聊天功能(Cmd L)不同的是,提示栏(Cmd K)主要负责用来生成或修改局部的代码, 而聊天功能(Cmd L)是用来针对更宽泛的代码问题进行对话的,更好的支持多轮的对话,可以针对更宽泛的编程问题进行解答。
Cursor 中的提示栏分为两个类型:
- 代码编辑提示栏: 在代码框中使用,主要是用来补充或编辑代码。
- 终端提示栏: 在终端框中使用,主要是用来生成终端中的命令。
代码编辑提示栏
在代码编辑框中,按下⌘+K就会弹出提示栏;

使用的上下文信息
上下文信息的有效性决定了生成的代码质量。
在代码编辑的提示栏使用时,Cursor会自动尝试找到有用的信息来改善代码生成,除了你手动包含的@符号外。还会有这些额外的上下文:
- 与你当前编辑的代码相关的文件
- 最近查看的文件
Cursor会根据与你的编辑/生成的相关性对上下文项进行排序,并保留最相关的项目作为大型语言模型的上下文。
内联生成
如果在按下Cmd K
时没有选中任何代码,Cursor将根据你在提示栏中输入的内容生成新代码。

内联编辑
如果按下Cmd K
时选中某段代码,Cursor将根据你在提示栏中输入的内容修改选中的代码。

终端提示栏
在Cursor的内置终端中,你可以按下Cmd K
(在Windows/Linux上是Ctrl K
)来打开终端底部的提示栏。

- 在提示栏里,用简单的话说说你想在终端里做什么。
- Cursor 会根据你的描述,自动帮你写出一个终端命令。
- 如果你觉得这个命令可以用:
- 按一下
Esc
键,命令就会出现在终端里,但还不会执行。 - 如果你想立即执行这个命令,就按
Cmd + Enter
。
- 按一下
使用的上下文信息
终端Cmd K默认会考虑以下上下文:
- 终端里面最近的历史记录
- 提示栏中的任何其他内容
技巧
后续指示
在使用AI生成代码或回答时,我们经常会发现第一次的结果不够完美。这就是为什么我们需要"后续指示"这个功能。它就像是在和AI对话一样,让你可以一步步引导AI,直到得到你想要的结果。
比如说,AI第一次生成的代码可能有点问题,你可以直接在提示栏里说"这个函数需要添加错误处理"。然后按下Enter
,AI就会根据你的新指示修改代码。你不需要重新开始整个过程,而是可以在原有的基础上继续改进。
快速回答
有时候,我们可能需要快速了解某段代码的功能或获取一些简单的信息,但又不想立即生成或修改代码。这就是快速回答功能的用武之地。
如果你在提示栏中按Option/Alt Enter
,Cursor会立即回答你关于选中内容和相关上下文的任何问题(而不会生成或修改代码)。

这个功能特别有用,因为:
- 它能快速解答你的疑问,帮你更好地理解代码。
- 你不需要切换到聊天窗口,可以直接在编辑器中获得答案。
- 这个对话的内容会被记住,所以你可以在后续的操作中利用这些信息。
快速生成 git commit message
你可以使用终端提示栏快速生成git commit消息。
步骤:
- 在终端中,输入‘git diff | cat’,获取最近的修改。
- 然后输入‘git add .’,把所有修改添加到暂存区。
- 按下
Cmd K
,在提示栏中输入‘git commit message’, Cursor会给你生成一个git commit命令并带有生成的commit message。 - 直接按 Cmd + Enter 执行命令,整个过程一气呵成。
总结
通过使用提示栏(Cmd K)功能,你可以快速生成和修改代码,生成git commit message,甚至可以快速回答关于代码的简单问题。这些功能可以帮助你更高效地编写代码,节省时间,提高工作效率。
Chat(Cmd+L)
适合以下的场景:
- 解答编程概念问题,学习新技术或框架
- 获取代码建议和最佳实践
- 调试和错误排查
Cursor 的 Chat 功能提供了最灵活的编程辅助能力,额外提供了:
- 基于@的
上下文快速引用能力
- 代码修改的
Apply
能力
Apply
Apply 能力让聊天功能(Cmd+L)具有了代码修改
的能力,但是如果有明确
的代码修改需求,其实更推荐使用专门为代码修改设计的功能:
- 提示栏(Cmd+K): 擅长
局部
代码的修改能力 - Composer: 擅长
全局
跨文件的修改能力
基于 @ 的上下文引用
Cursor 入门教程3 - 使用 Chat(Cmd L)功能解决通用问题 | cursor101.com
启用Agent模式
Cursor效率之道:Agent模式+7大高级技巧详解_cursor rules for ai-优快云博客
启用Agent模式非常简单,只需使用快捷键 ⌘.(Mac)或 Ctrl + .(Windows/Linux),即可激活Agent功能。在Agent模式下,你可以通过命令行或快捷键执行以下操作:
上下文管理:通过@命令快速调整AI的关注范围。
终端操作:直接在编辑器中输入命令,Agent会自动执行。
文件交互:通过命令快速创建、修改或删除文件。
或者直接在Composer右下角点击agent按钮,也可以启用Agent模式,如下图所示:

使用场景
如果是一般的聊天交互,比如你想让Cursor帮你修改某个文件,那么Normal模式就可以完成,不需要启用Agent模式。
如果需要Cursor独立的去完成一项相对复杂的任务,那么Agent模式可以做的事情非常多,以下是一些常见的使用场景:
代码重构:当需要对某个模块进行重构时,Agent会根据代码库上下文提供优化建议,并自动生成替代代码。
错误修复:当代码出现错误时,Agent不仅会标注问题,还会提供详细的修复建议,并自动修复。
自动化任务:通过Agent,可以实现文件批量操作、脚本生成等自动化任务,大幅提升效率。
代码生成:通过Agent,可以实现代码生成,比如生成一个完整的项目。
版本控制与检查点
Cursor内置了强大的版本控制功能,每次生成代码或修改文件时,都会自动创建一个检查点(Checkpoint)。
使用方法:
回滚代码:如果对当前修改不满意,可以随时回滚到之前的版本。
如下图所示,如果对修改不满意,可以点击restore恢复到修改之前的状态。

优势:
在尝试新功能或大规模重构时,检查点功能可以作为“后悔药”,确保代码安全。
方便团队协作时追踪代码变更。
文档生成与管理:提升项目可维护性
Cursor不仅可以生成代码,还可以自动生成项目文档,包括函数说明、使用指南等。
实用技巧:
从一开始就写Readme:在创建项目时,让Cursor生成详细的Readme文件,明确项目目标和功能。
代码注释:要求Cursor在生成代码时自动添加清晰的注释,提升代码的可读性。
示例:
在项目初期,输入指令“生成项目的Readme文件”,Cursor会根据代码库内容生成一份详细的文档,包括功能描述、使用方法和依赖项说明。然后再随后的任务中,Cursor会根据代码库内容自动更新Readme文件。
Rules for AI:自定义AI行为
Cursor允许开发者通过 Rules for AI 功能自定义AI的行为,使其更符合个人或团队的开发需求。这一功能可以在Cursor的设置中找到;(路径为:Settings > General > Rules for AI)
使用方法:
打开设置:在Cursor中,导航到 Settings > General > Rules for AI。
添加规则:在规则编辑框中输入自定义规则,例如要求AI优先生成某种语言的代码或遵循某种设计模式。
保存并应用:完成规则配置后,点击保存,AI将根据新规则调整行为。
常见应用场景:
编码规范:要求AI遵循特定的代码风格或团队的命名约定。
技术栈偏好:优先生成与项目技术栈匹配的代码,例如Python或JavaScript。
性能优化:让AI生成更高效的算法或代码实现。
示例规则:
- 优先生成Python代码
- 使用中文回复
- 在代码中添加详细注释
- 使用Windows的命令行命令
自定义AI规则:个性化你的Cursor
Rules for AI是针对整个Cursor的设置,所以类似System Prompt,Cursor还支持通过.cursorrules文件进一步自定义AI的项目行为,开发者可以根据个人习惯和项目需求调整AI的工作方式。
cursor.directory(https://cursor.directory) 的网站里收集了不少Cursor的自定义规则,方便大家参考,不用重复造轮子。
实用场景:
- 针对特定项目(如后端API开发或机器学习模型训练),定义专属的AI行为规则。
- 在团队协作中,确保AI生成的代码符合团队的编码规范。
Cursor使用过程记录
灵感起源:
"放开那代码让我来!"——Cursor帮你写代码的奇妙之旅 - Sunzz - 博客园
使用cursor实现俄罗斯方块小游戏:
https://segmentfault.com/a/1190000045680817(教程不好用)
(刚开始按照教程试了三四次都不能运行,最后搜索原因多次尝试终于可以运行了!)
基础版--V1.0
使用java帮我编写一个简单的俄罗斯方块小游戏

这个俄罗斯方块游戏包含以下功能:
- 基本的游戏界面显示
- 方块的移动(左右方向键)和旋转(上方向键)
- 自动下落(可以用下方向键加速)
- 碰撞检测
- 消行功能
- 游戏结束判定
使用方法:
- 创建这两个Java文件并保存
- 编译并运行Tetris类
- 使用方向键控制:
- 左右方向键:移动方块
- 上方向键:旋转方块
- 下方向键:加速下落
游戏控制说明:
- 方块会自动下落
- 当方块无法继续下落时,会固定在当前位置
- 当一行被填满时,该行会被消除
- 当新的方块无法放置时,游戏结束
这是一个基础版本的俄罗斯方块,你可以根据需要添加更多功能,比如:
- 计分系统
- 级别系统(随着分数提高,方块下落速度加快)
- 预览下一个方块
- 暂停功能
- 背景音乐
- 更好的视觉效果
进阶版--V2.0
帮我添加预览下一个方块的功能,并设计积分系统和倒计时60s自动结束游戏

这些修改添加了以下功能:
- 预览下一个方块:
- 在游戏主区域右侧显示预览窗口
- 显示下一个将出现的方块形状
- 积分系统:
- 一次消除1行:100分
- 一次消除2行:200分
- 一次消除3行:400分
- 一次消除4行:800分
- 分数会实时显示在预览窗口下方
- 倒计时系统:
- 游戏开始时有60秒倒计时
- 时间显示在得分下方
- 时间到达0时游戏结束
- 改进的游戏结束显示:
- 居中显示"游戏结束"文字
- 显示最终得分
- 游戏可以因为两种情况结束:时间耗尽或方块堆到顶部
5. 调整了窗口大小以适应新增的预览区域
使用方法和之前一样,但现在你可以:
- 在右侧预览窗口中看到下一个方块的形状
- 查看当前得分
- 关注剩余时间
- 争取在时间结束前获得最高分
这些新功能让游戏更具挑战性和趣味性。玩家需要在有限的时间内尽可能多地消除行数来获得高分。
终极版--V 3.0
帮我把不同的方块形状设计为显示不同的颜色

这些修改实现了以下功能:
- 每种形状都有固定的颜色:
- I形:青色
- O形:黄色
- T形:品红色
- L形:橙色
- J形:蓝色
- S形:绿色
- Z形:红色
- 方块在放置到底部后会保持其原有颜色
- 预览窗口中的下一个方块也会显示对应的颜色
- 消除行时会正确处理颜色信息
这样的改动会让游戏看起来更加丰富多彩,也更容易区分不同的方块形状。每种形状都有其独特的颜色标识,使游戏更加直观和有趣。
最终效果展示:
过程实现记录

经过几天对Cursor的使用,可以明显感受到它的功能很强大,可以很好的输出你想要的内容,语句之间的关联很强,可以智能的结合上下文,Composer确实非常的好用;