Cursor —— AI编辑器 使用详解

news2025/5/9 23:56:18

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.coloradmin.cn/o/2371878.html

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

相关文章

Pytorch-CUDA版本环境配置

Pytorch-CUDA版本环境配置 电脑如果是Windows平台下的Nvidia GPU的用户,需配置Pytorch的CUDA版本,分为三步: 1. 安装或更新NVIDA显卡驱动 官方驱动下载地址: https://www.nvidia.cn/Download/index.aspx?langcn 2. 安装CUDA Too…

OpenCV 图形API(77)图像与通道拼接函数-----对图像进行几何变换函数remap()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 对图像应用一个通用的几何变换。 函数 remap 使用指定的映射对源图像进行变换: dst ( x , y ) src ( m a p x ( x , y ) , m a p y…

Spring AI 入门(持续更新)

介绍 Spring AI 是 Spring 项目中一个面向 AI 应用的模块&#xff0c;旨在通过集成开源框架、提供标准化的工具和便捷的开发体验&#xff0c;加速 AI 应用程序的构建和部署。 依赖 <!-- 基于 WebFlux 的响应式 SSE 传输 --> <dependency><groupId>org.spr…

QUIC协议优化:HTTP_3环境下的超高速异步抓取方案

摘要 随着 QUIC 和 HTTP/3 的普及&#xff0c;基于 UDP 的连接复用与内置加密带来了远超 HTTP/2 的性能提升&#xff0c;可显著降低连接握手与拥塞恢复的开销。本文以爬取知乎热榜数据为目标&#xff0c;提出一种基于 HTTPX aioquic 的异步抓取方案&#xff0c;并结合代理 IP设…

uni-app实现完成任务解锁拼图功能

界面如下 代码如下 <template><view class"puzzle-container"><view class"puzzle-title">任务进度 {{completedCount}}/{{totalPieces}}</view><view class"puzzle-grid"><viewv-for"(piece, index) in…

数据链路层(MAC 地址)

目录 一、前言&#xff1a; 二、以太网&#xff1a; 三、MAC 地址的作用&#xff1a; 四、ARP协议&#xff1a; 一、前言&#xff1a; 数据链路层主要负责相邻两个节点之间的数据传输&#xff0c;其中&#xff0c;最常见数据链路层的协议有 以太网&#xff08;通过光纤 / 网…

基于DQN的自动驾驶小车绕圈任务

1.任务介绍 任务来源: DQN: Deep Q Learning &#xff5c;自动驾驶入门&#xff08;&#xff1f;&#xff09; &#xff5c;算法与实现 任务原始代码: self-driving car 最终效果&#xff1a; 以下所有内容&#xff0c;都是对上面DQN代码的改进&#…

【Linux】Linux工具(1)

3.Linux工具&#xff08;1&#xff09; 文章目录 3.Linux工具&#xff08;1&#xff09;Linux 软件包管理器 yum什么是软件包关于 rzsz查看软件包——yum list命令如何安装软件如何卸载软件补充——yum如何找到要安装软件的下载地址 Linux开发工具Linux编辑器-vim使用1.vim的基…

基于 Spring Boot 瑞吉外卖系统开发(十一)

基于 Spring Boot 瑞吉外卖系统开发&#xff08;十一&#xff09; 菜品启售和停售 “批量启售”、“批量停售”、操作列的售卖状态绑定单击事件&#xff0c;触发单击事件时&#xff0c;最终携带需要修改售卖状态的菜品id以post请求方式向“/dish/status/{params.status}”发送…

深入理解负载均衡:传输层与应用层的原理与实战

目录 前言1. 传输层&#xff08;Layer 4&#xff09;负载均衡1.1 工作层级与核心机制1.2 实现方式详解1.3 优缺点分析1.4 典型实现工具 2. 应用层&#xff08;Layer 7&#xff09;负载均衡2.1 工作层级与核心机制2.2 实现方式解析2.3 优缺点分析2.4 常用实现工具 3. Layer 4 与…

WPF之Slider控件详解

文章目录 1. 概述2. 基本属性2.1 值范围属性2.2 滑动步长属性2.3 刻度显示属性2.4 方向属性2.5 选择范围属性 3. 事件处理3.1 值变化事件3.2 滑块拖动事件 4. 样式和模板自定义4.1 基本样式设置4.2 控件模板自定义 5. 数据绑定5.1 绑定到ViewModel5.2 同步多个控件 6. 实际应用…

企业微信自建消息推送应用

企业微信自建应用来推送消息 前言 最近有个给特定部门推送消息的需求&#xff0c;所以配置一个应用专门用来推送消息。实现过程大致为&#xff1a;服务器生成每天的报告&#xff0c;通过调用API来发送消息。以前一直都是发邮件&#xff0c;整个邮箱里全是报告文件&#xff0c…

日志之ClickHouse部署及替换ELK中的Elasticsearch

文章目录 1 ELK替换1.1 Elasticsearch vs ClickHouse1.2 环境部署1.2.1 zookeeper 集群部署1.2.2 Kafka 集群部署1.2.3 FileBeat 部署1.2.4 clickhouse 部署1.2.4.1 准备步骤1.2.4.2 添加官方存储库1.2.4.3 部署&启动&连接1.2.4.5 基本配置服务1.2.4.6 测试创建数据库和…

解构与重构:自动化测试框架的进阶认知之旅

目录 一、自动化测试的介绍 &#xff08;一&#xff09;自动化测试的起源与发展 &#xff08;二&#xff09;自动化测试的定义与目标 &#xff08;三&#xff09;自动化测试的适用场景 二、什么是自动化测试框架 &#xff08;一&#xff09;自动化测试框架的定义 &#x…

DockerDesktop替换方案

背景 由于DockerDesktop并非开源软件&#xff0c;如果在公司使用&#xff0c;可能就有一些限制&#xff0c;那是不是除了使用DockerDesktop外&#xff0c;就没其它办法了呢&#xff0c;现在咱们来说说替换方案。 WSL WSL是什么&#xff0c;可自行百度&#xff0c;这里引用WS…

力扣热题100之搜索二维矩阵 II

题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 代码 方法一&#xff1a;直接全体遍历 这个方法很直接&#xff0c;但是居然没有超时&#xff0c…

docker操作镜像-以mysql为例

Docker安装使用-CSDN博客 docker操作镜像-以mysql为例 当安装一个新的镜像时可以登录https://hub.docker.com/直接搜索想要安装的镜像&#xff0c;查看文档 1&#xff09;拉取镜像 docker pull mysql 或者 docker pull mysql:版本号 然后直接跳到第4&#xff09;步即可 2…

使用OpenCV 和 Dlib 进行卷积神经网络人脸检测

文章目录 引言1.准备工作2.代码解析2.1 导入必要的库2.2 加载CNN人脸检测模型2.3 加载并预处理图像2.4 进行人脸检测2.5 绘制检测结果2.6 显示结果 3.完整代码4.性能考虑5.总结 引言 人脸检测是计算机视觉中最基础也最重要的任务之一。今天我将分享如何使用dlib库中的CNN人脸检…

React 实现 JWT 登录验证的最小可运行示例

下面是一个用 React 实现 JWT 登录验证的最小可运行示例&#xff0c;包含&#xff1a; React 前端&#xff1a;登录、保存 Token、获取用户数据。模拟后端&#xff1a;用 mock API&#xff08;你也可以接真后端&#xff09;。 &#x1f9f1; 技术栈 React&#xff08;使用 Vi…

Power Query精通指南1:查询结构设计、数据类型、数据导入与迁移(平面文件、Excel、Web)

文章目录 零、Power Query简介0.1 Power Query 主要功能0.2 Power Query 的优势0.3 Power Query 组件 一、Power Query数据处理基本流程1.1 前期准备1.2 提取1.3 转换1.3.1 Power Query 编辑器界面1.3.2 默认转换1.3.3 自定义转换 1.4 加载1.4.1 自动检测数据类型1.4.2 重命名查…