Cursor —— AI编辑器 使用详解

Cursor - The AI Code Editor


一、Cursor 是什么?

Cursor 是一款优秀的AI代码编辑器,它内置了 Deepseek-R1、GPT-4、Claude等 AI 模型。

简单说,就是:Cursor = VS Code 编辑器 + AI 大模型 + Cursor 功能特性(代码补全、文件编辑等)

它可以:

  • 智能补全代码
  • 解释代码
  • 定位Bug
  • AI大模型问答
  • 文本编辑

更重要的是,它可以:

  • 根据自然语言,生成代码

这一点,非常利好 “不懂编程,但是有开发想法” 的人。


二、核心功能

1、Cursor Tab

Cursor Tab 是手写代码过程中,使用最高频的一个功能。

写代码时,Cursor 会基于当前光标的位置推断出你接下来要写的代码内容。

Cursor 会像输入法的联想功能一样,联想出你接下来想要编写的内容。如果接受,只需要按键盘的 Tab 键,代码就会自动生成,然后 Cursor 会基于新的光标位置推断新的内容。

如果不接受,只需按照自己的想法继续敲代码即可。Cursor 会基于新的光标位置,推断下一步的联想。

在上下文代码逻辑比较完整的情况下,Cursor 对代码的联想一般比较准确。所以大多数时间里,你会频繁地按 Tab 键采用 Cursor 联想的代码。(未来就像 tab tab tab)


2、聊天窗口:Chat

Chat 聊天窗,是最核心、最重要的一个功能。

Chat 聊天框分为 3 种模式,分别为:AskEditAgent

(1)Ask

Ask 模式,类似你使用 Deep Seek app 来聊天的功能。它侧重于对你的提问进行解答。

平时开发时,可以把它当作:

  • 思维发散的工具,辅助你设计一些创新的游戏设计
  • 技术咨询的工具,告知你要实现这样的功能,需要用到哪些技术
  • 代码解释的工具,复制一段代码到聊天框,让Cursor告诉你这段代码的逻辑,帮你排查代码是否有Bug
  • 提高效率的工具,一些机械式的编码工作,一些不太熟悉的编码工作,可以让Cursor帮你写
    • 案例:之前做Demo,找了一个第三方特效插件,有一个Shader用的是内置渲染管线的写法,让Cursor把这份Shader转为URP渲染管线的写法
  • (其他任何你能想到让Cursor去做的功能)

(2)Edit

Edit 模式,可以理解为增强版的 Ask 模式。相比之下,Edit 模式增加了直接修改项目文件、代码的功能。

举个例子,我分别在 Ask 模式和 Edit 模式下,给 AI 提了相同的问题:

一个简单跑酷游戏的赛道生成逻辑怎么写

Ask 模式,生成了 C# 代码以及文字描述: 

Edit 模式,则是直接修改了代码文件,并给出了文字描述:

Edit 模式,更适合在需求明确的情况下,让 Cursor AI 直接参与到项目工作流中。

当然 AI 生成的代码还是需要人去评估的,这些代码生成后,对应的文件处于“待保存”的状态。

你需要一个文件一个文件、一行代码一行代码地去过一遍:

  • 符合要求的代码,保留——“√ Accept”
  • 不满足要求的代码,还原——“× Reject”

你可以在 AI 的回答中选择是否使用生成的代码:

也可以在聊天窗口的代码修改总览中选择是否采纳代码:

也可以在生成的代码文件中,做更精细化的采纳判断。

那么,如果你不会写代码,该怎么用这个功能?

很简单,无脑点 Accept All 采纳所有生成的代码,然后运行起来看看,不符合效果的,继续向AI提出修改意见,直到代码的运行符合预期。

文章一开始的案例演示,用的就是这种方式。


(3)Agent

Agent 模式,可以理解为增强版的 Edit 模式。

除了 Edit 的功能,它还可以:

  • 根据搜索内容的关联性,搜索相关的代码
  • 调用 MCP 服务器,接入其他 AI 工具,比如:文生图
  • 运行终端(命令行)指令
  • 自动从网上搜索最新的内容

因为 Agent 模式比 Edit 模式更强大,逻辑更复杂,所以 Agent 模式的执行速度会比 Edit 模式慢很多,但是回答的质量也高很多。

什么情况下使用 Agent 模式?
  • 有编码需求的前提下,
    • 如果你不是很懂代码
      • 无脑选择 Agent 模式来生成代码;
    • 如果你是程序员
      • 如果要生成的代码需要分模块才能理清楚
        • 选择 Agent 模式,交给 AI 来托管
      • 如果只是生成一些简单的逻辑
        • 选择 Edit 模式,精细化操控

Ctrl K 其实是一个 Edit 模式的内嵌聊天窗口。

你可以把光标定位到文件的某一行,在内嵌窗口中输入你希望 AI 生成的代码逻辑。


三、Cursor的使用技巧

1、AI 乱改代码问题的解决思路

网上经常会刷到,网友使用 Cursor 时,AI 把之前生成好的、可以稳定运行的代码给改坏了。

这个问题可以拆分成3个步骤进行解决:预防检测回滚


1、预防

预防,就是避免让AI生成自己不想要的代码。

换种说法,就是:怎么向 AI 提问,让 AI 完全理解我们的诉求

有以下几种策略:

  • 让 AI 复述需求

在聊天框输入需求之后,加上一句:

请先复述一遍我的需求,先不要修改代码,确保你真正理解我的需求。

然后基于 AI 的回复,确认AI的理解和需求完全一致时,再让 AI 生成代码。

  • 限定影响范围

让 AI 生成代码时,尽可能引用相关的文件、文件夹,限定 AI 生成、修改代码的文件范围。

哪怕 AI 生成了错误的代码,也可以让影响降到最小。

  • 拆解并细化需求

AI 善于执行明确的指令,太泛、太模糊的指令会让 AI 思维发散,从而生成偏离期望的代码。

  • 引导与修正

AI 在知识领域非常强大,但是在自然语言的沟通理解上,尤其是中文,还远远没能达到一名成年人的理解水准。

即使是两名智力正常的程序与策划,也依然会出现开发内容与项目需求有偏差的情况,所以在AI思考方向有偏差时,要及时修正、加以引导。

必要时,可以将自己对问题的思考策略告知AI,也可以附上一些引用、链接等,帮助 AI 更好地理解我们的需求。


2、检测

这一点,在前面讲 Edit 时有提到过。在 Edit 模式下,AI 可以一次性帮我们编写很多代码文件,你需要自己去判断这些代码是否符合预期,从而判断代码是否采用。

不熟悉编程的同学,可以 Accept All,运行后根据结果,告知 AI 哪些地方不符合预期,期望的预期是怎么样的,以此来一步步把代码修改成自己想要的样子。


3、回滚

回滚,是一个追悔的功能。

如果误点了 Accept All,但是代码逻辑又不是自己想要的,可以找到代码生成前的那一次提问,点 Checkpoint 旁边的 Restor 把代码回滚到修改前的状态:

遵循这 3 个步骤,可以让 AI 乱改代码的可能性降到最低。

即使你不会写代码,也可以让 AI 写出符合你心意的代码。


四、Cursor 的整体使用思路

  • 需求分析、整理成档:
    • 用 Ask 模式,找 AI 把需求聊透,并记录成文档,以便后续引用,让 AI 快速理解。
  • 编写代码、按需选模式
    • 程序员:用 Edit 模式编写简单的代码逻辑,借助 Agent 模式编写复杂模块的代码逻辑
    • 门外汉:无脑用 Agent 模式。
  • 使用引用、制定规则
    • 高效使用 @ 引用功能
    • 合理制定规范,让 AI 的回答更精准。
  • 模型选择
    • 编码用 Claude-xxx-sonnet
    • 聊需求用 Deep Seek R1、ChatGPT-4o。

参考:https://zhuanlan.zhihu.com/p/27335614120

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/78999.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/78999.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Excel图表添加辅助线

前言:博主最近是有点忙,好吧,就是很忙,但我也不想水文章的,每一篇文章都是本人精心编辑,觉得对大家有用才发布的。而且同一个类型的文章,我基本都会写在同一篇中方便大家集中获取。本来这篇文章…

2025.5.8总结(中期审视)

今日记录: 晚上,主管找我聊了关于中期绩效审视的问题。 首先就是让我汇报上半年的工作进展,汇报完后,感觉体现不出自己的工作量,这确实考验个人的汇报能力。 汇报完工作后,主管开始给我提了一些建设性的…

Excel模版下载文件导入

工作中经常遇到Excel模板下载,然后填好后再导入的情况,简单记录下,方便下次使用 Excel模版下载(返回Base64) 模板文件存放位置 import java.util.Base64; import org.apache.commons.io.IOUtils; import org.sprin…

SpringBoot 讯飞星火AI WebFlux流式接口返回 异步返回 对接AI大模型 人工智能接口返回

介绍 用于构建基于 WebFlux 的响应式 Web 应用程序。集成了 Spring WebFlux 模块,支持响应式编程模型,构建非阻塞、异步的 Web 应用。WebFlux 使用了非阻塞的异步模型,能够更好地处理高并发请求。适合需要实时数据推送的应用场景。 WebClie…

模拟Sch LVS Sch 方法

Step1:打开calibre 打开一个terminal,进到想要做lvs的路径: 在terminal 敲入calibre -gui,产生calibre 界面 点击nmLVS,产生calibre LVS界面 Step2:LVS 界面设置1 LVS rules file:加载lvs规…

注解的定义

一、理论说明 1. 注解的定义 Java 注解是从 JDK 5.0 开始引入的一种元数据机制,它可以为代码添加额外的信息,这些信息不影响程序的运行逻辑,但可以在编译期、类加载期或运行期被读取和处理。注解本质上是一种特殊的接口,所有注解…

面试实践AND面经热点题目总结

1、对于Rocketmq消息积压、丢失如何解决? 消息积压原因以及解决方案 🎯 产生原因: 消费者处理能力弱,消费速度远低于生产速度; 网络不稳定,消费者拉取消息失败; 消费端异常(如处理…

【KWDB 创作者计划】使用Docker实现KWDB数据库的快速部署与配置

【KWDB 创作者计划】使用Docker实现KWDB数据库的快速部署与配置 前言一、KWDB介绍1.1 KWDB简介1.2 主要特点1.3 典型应用场景 二、环境介绍2.1 部署环境要求2.2 本地环境规划2.3 部署模式 三、部署Docker环境3.1 安装相关工具3.2 配置Docker软件源3.3 更新软件源3.4 安装Docker…

JWT深度解析:现代Web身份验证的通行证-优雅草卓伊凡

# JWT深度解析:现代Web身份验证的通行证 ## 一、JWT的本质与构成 ### 1.1 JWT的定义解析 JWT(JSON Web Token)是一种**开放标准(RFC 7519)**,用于在各方之间安全地传输信息作为JSON对象。这种信息可以被…

前端缓存踩坑指南:如何优雅地解决浏览器缓存问题?

浏览器缓存,配置得当,它能让页面飞起来;配置错了,一次小小的上线,就能把你扔进线上 bug 的坑里。你可能遇到过这些情况: 部署上线了,结果用户还在加载旧的 JS;接口数据改了&#xf…

2022年8月,​韩先超对中移信息进行微服务架构原理(Docker+k8s+DevOps+Go等)培训

2022年8月,​韩先超对中移信息进行微服务架构原理(Dockerk8sDevOpsGo等)培训 2022年8月,在企业数字化转型和云原生架构加速演进的背景下, 中移信息技术有限公司特别邀请云原生与DevOps领域专家 韩先超老师&#xff0c…

ComfyUI 学习笔记,案例 6 :FLUX 模型文生图

背景 刚开始了解 Comfy UI 的时候,随便找了一个资料,对着这篇 《Flux在ComfyUI里的下载与安装》 进行操作的,下载了这里面的模型到本机。 玩了几天,大概对 ComfyUI 有了一点了解,知道了 Flux 这是一个模型&#xff0…

Docker + Watchtower 实现容器自动更新:高效运维的终极方案

文章目录 前言一、Watchtower 简介二、Watchtower 安装与基本使用1. 快速安装 Watchtower2. 监控特定容器 三、Watchtower 高级配置1. 设置检查间隔2. 配置更新策略3. 清理旧镜像4. 通知设置 四、生产环境最佳实践1. 使用标签控制更新2. 更新前执行健康检查3. 结合CI/CD流水线 …

从易发性分析到灾后规划,AI大模型如何颠覆传统地质灾害防治?

地质灾害是指全球地壳自然地质演化过程中,由于地球内动力、外动力或者人为地质动力作用下导致的自然地质和人类的自然灾害突发事件。在降水、地震等自然诱因的作用下,地质灾害在全球范围内频繁发生。我国不仅常见滑坡灾害,还包括崩塌、泥石流…

第37次CCF第三题--模板展开--stringstream读取字符串

1 a hello 1 b world 2 c $a $b 1 d good $c 1 a hi 1 e good $c1 a hello 1 b world 2 c $a $b 3 c 1 a hi 3 c将会输出:10 和 7,对应的变量的值为: helloworld hiworld 需要注意的是,在使用间接赋值语句时,在变量的…

深度学习:智能车牌识别系统(python)

这是一个基于opencv的智能车牌识别系统,有GUI界面。程序能自动识别图片中的车牌号码,并支持中文和英文字符识别,支持选择本地图片文件,支持多种图片格式(jpg、jpeg、png、bmp、gif)。 下面,我将按模块功能对代码进行分段说明: 1. 导入模块部分 import tkinter as tk…

Missashe考研日记-day35

Missashe考研日记-day35 1 专业课408 学习时间:3h学习内容: 完结撒花!!今天把OS最后一节的内容学完了,操作系统也算是告一段落了,接下来是计网时间!不过计网我是上学期才学过的,当…

【Bootstrap V4系列】学习入门教程之 组件-下拉菜单(Dropdowns)

Bootstrap V4系列 学习入门教程之 组件-下拉菜单(Dropdowns) 下拉菜单(Dropdowns)一、Overview 概述二、Accessibility 可访问性三、Examples3.1 Single button 单按钮3.2 Split button 分割按钮 四、Sizing 尺寸 下拉菜单&#x…

红外遥控与NEC编码协议详解

在我们日常生活中,电视遥控器、空调遥控器、风扇遥控器,几乎都离不开“红外遥控”这项技术。虽然我们每天都在用,但你知道里面是怎么通信的吗?本篇文章将带你了解红外遥控的工作原理,重点解析目前应用最广泛的红外编码…

深入剖析 I/O 复用之 select 机制

深入剖析 I/O 复用之 select 机制 在网络编程中,I/O 复用是一项关键技术,它允许程序同时监控多个文件描述符的状态变化,从而高效地处理多个 I/O 操作。select 作为 I/O 复用的经典实现方式,在众多网络应用中扮演着重要角色。本文…