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 种模式,分别为:Ask、Edit、Agent。
(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
相关文章:

Cursor —— AI编辑器 使用详解
Cursor - The AI Code Editor 一、Cursor 是什么? Cursor 是一款优秀的AI代码编辑器,它内置了 Deepseek-R1、GPT-4、Claude等 AI 模型。 简单说,就是:Cursor VS Code 编辑器 AI 大模型 Cursor 功能特性(代码补全、…...

Pytorch-CUDA版本环境配置
Pytorch-CUDA版本环境配置 电脑如果是Windows平台下的Nvidia GPU的用户,需配置Pytorch的CUDA版本,分为三步: 1. 安装或更新NVIDA显卡驱动 官方驱动下载地址: https://www.nvidia.cn/Download/index.aspx?langcn 2. 安装CUDA Too…...
一个完整的神经网络训练流程详解(附 PyTorch 示例)
🧠 一个完整的神经网络训练流程详解(附 PyTorch 示例) 📌 第一部分:神经网络训练流程概览(总) 在深度学习中,构建和训练一个神经网络模型并不是简单的“输入数据、得到结果”这么简…...

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…...
windows通过wsl安装ubuntu20.04
1 *.bat文件安装hyper-v pushd "%~dp0" dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt for /f %%i in (findstr /i . hyper-v.txt 2^>nul) do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"…...

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

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

uni-app实现完成任务解锁拼图功能
界面如下 代码如下 <template><view class"puzzle-container"><view class"puzzle-title">任务进度 {{completedCount}}/{{totalPieces}}</view><view class"puzzle-grid"><viewv-for"(piece, index) in…...
Vue3 中当组件嵌套层级较深导致 ref 无法直接获取子组件实例时,可以通过 provide/inject + 回调函数的方式实现子组件方法传递到父组件
需求:vue3中使用defineExposeref调用子组件方法报错不是一个function 思路:由于组件嵌套层级太深导致ref失效,通过provide/inject 回调函数来实现多层穿透 1. 父组件提供「方法注册函数」 父组件通过 provide 提供一个用于接收子组件方法…...
关于 js:3. 闭包、作用域、内存模型
一、闭包的本质:函数 其词法作用域环境 闭包(Closure)的本质可以概括为: 闭包是一个函数,以及它定义时捕获的词法作用域中的变量集合。 这意味着:即使外部函数已经返回或作用域结束,只要有内…...

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

基于DQN的自动驾驶小车绕圈任务
1.任务介绍 任务来源: DQN: Deep Q Learning |自动驾驶入门(?) |算法与实现 任务原始代码: self-driving car 最终效果: 以下所有内容,都是对上面DQN代码的改进&#…...
terraform resource创建了5台阿里云ecs,如要使用terraform删除其中一台主机,如何删除?
在 Terraform 中删除阿里云 5 台 ECS 实例中的某一台,具体操作取决于你创建资源时使用的 多实例管理方式(count 或 for_each)。以下是详细解决方案: 方法一:使用 for_each(推荐) 如果创建时使…...

【Linux】Linux工具(1)
3.Linux工具(1) 文章目录 3.Linux工具(1)Linux 软件包管理器 yum什么是软件包关于 rzsz查看软件包——yum list命令如何安装软件如何卸载软件补充——yum如何找到要安装软件的下载地址 Linux开发工具Linux编辑器-vim使用1.vim的基…...
探索大语言模型(LLM):词袋法(Bag of Words)原理与实现
文章目录 引言一、词袋法原理1.1 核心思想1.2 实现步骤 二、数学公式2.1 词频表示2.2 TF-IDF加权(可选) 三、示例表格3.1 构建词汇表3.2 文本向量化(词频) 四、Python代码实现4.1 基础实现(手动计算)4.2 输…...
vue引入物理引擎matter.js
vue引入物理引擎matter.js 在 Vue 项目中集成 Matter.js 物理引擎的步骤如下: 1. 安装 Matter.js npm install matter-js # 或 yarn add matter-js2. 创建 Vue 组件 <template><div ref="physicsContainer" class="physics-container"><…...

基于 Spring Boot 瑞吉外卖系统开发(十一)
基于 Spring Boot 瑞吉外卖系统开发(十一) 菜品启售和停售 “批量启售”、“批量停售”、操作列的售卖状态绑定单击事件,触发单击事件时,最终携带需要修改售卖状态的菜品id以post请求方式向“/dish/status/{params.status}”发送…...
支持鸿蒙next的uts插件
*本文共四个功能函数,相当于四个插件。作者为了偷懒写成了一个插件,调对应的函数即可。 1、chooseImageHarmony函数:拉起相册选择图片并转为Base64 2、takePhotoAndConvertToBase64函数:拉起相机拍照并转为Base64 3、openBrows…...

深入理解负载均衡:传输层与应用层的原理与实战
目录 前言1. 传输层(Layer 4)负载均衡1.1 工作层级与核心机制1.2 实现方式详解1.3 优缺点分析1.4 典型实现工具 2. 应用层(Layer 7)负载均衡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. 实际应用…...
极狐GitLab 如何将项目共享给群组?
极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 共享项目和群组 (BASIC ALL) 在极狐GitLab 16.10 中,更改为在成员页面的成员选项卡上显示被邀请群组成员…...

企业微信自建消息推送应用
企业微信自建应用来推送消息 前言 最近有个给特定部门推送消息的需求,所以配置一个应用专门用来推送消息。实现过程大致为:服务器生成每天的报告,通过调用API来发送消息。以前一直都是发邮件,整个邮箱里全是报告文件,…...
【React】Hooks useReducer 详解,让状态管理更可预测、更高效
1.背景 useReducer是React提供的一个高级Hook,没有它我们也可以正常开发,但是useReducer可以使我们的代码具有更好的可读性,可维护性。 useReducer 跟 useState 一样的都是帮我们管理组件的状态的,但是呢与useState不同的是 useReducer 是集…...

日志之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 测试创建数据库和…...
亚远景-ASPICE vs ISO 21434:汽车软件开发标准的深度对比
ASPICE(Automotive SPICE)和ISO 21434是汽车软件开发领域的两大核心标准,分别聚焦于过程质量与网络安全。以下从核心目标、覆盖范围、实施重点、协同关系及行业价值五个维度进行深度对比分析: 一、核心目标对比 ASPICE࿱…...
51单片机快速成长路径
作为在嵌入式领域深耕18年的工程师,分享一条经过工业验证的51单片机快速成长路径,全程干货无注水: 一、突破认知误区(新手必看) 不要纠结于「汇编还是C」:现代开发90%场景用C,掌握指针和内存管…...
使用 NGINX 实现 HTTP Basic 认证ngx_http_auth_basic_module 模块
一、前言 在 Web 应用中,对部分资源进行访问控制是十分常见的需求。除了基于 IP 限制、JWT 验证、子请求校验等方式外,最经典也最简单的一种方式便是 HTTP Basic Authentication。NGINX 提供的 ngx_http_auth_basic_module 模块支持基于用户名和密码的基…...

解构与重构:自动化测试框架的进阶认知之旅
目录 一、自动化测试的介绍 (一)自动化测试的起源与发展 (二)自动化测试的定义与目标 (三)自动化测试的适用场景 二、什么是自动化测试框架 (一)自动化测试框架的定义 &#x…...

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

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